查看: 2159|回复: 2

[已经过期] 问脚本几个常识问题

[复制链接]
梦石
0
星屑
4761
在线时间
285 小时
注册时间
2013-10-13
回帖
580
发表于 2013-12-18 10:29:12 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
1,实变量在类外能被用吗?常量呢?
2,
class Game_System
  ...
  def initialize
    @map_interpreter = Interpreter.new(0, true)     
    @battle_interpreter = Interpreter.new(0, false)           ???0表示什么?
3,我看见如Interpreter,Audio , Graphics等类名都是直接被引用的,到底在哪里定义了这些类?我看不到。
4,
def bgm_play(bgm)                  
    @playing_bgm = bgm
    if bgm != nil and bgm.name != ""  
      Audio.bgm_play("Audio/BGM/" + bgm.name, bgm.volume, bgm.pitch)
    else
      Audio.bgm_stop        ????未被定义的方法是不能被用的,下面的这个(def bgm_stop   /Audio.bgm_stop /  end)就是对它的定义吗?那不是循环吗?就是Audio.bgm_stop(Audio.bgm_stop)
    Graphics.frame_reset   
end
def bgm_stop
    Audio.bgm_stop
end
梦石
0
星屑
55
在线时间
218 小时
注册时间
2013-12-17
回帖
368
发表于 2013-12-18 11:23:01 | 显示全部楼层
1.在类内写入(我估计楼主说的是实例变量)
attr_reader   : 实例变量名  #该变量能被其他类或方法读取
attr_accessor: 实例变量名  #该变量能被其他类或方法读取和修改
2.Interpreter.new(0, false) 0代表了什么 false代表了什么 你可自行去看 Interpreter的参数表。
本吃货替你看了下,发现
  1. #     depth : 堆置深度
  2. #     main  : 主标志
  3. initialize(depth = 0, main = false)
复制代码
还有,只有VA的解释器只有一个参数(depth),而Vx的解释器名为 Game_Interpreter,只有Xp的解释器名为Interpreter且有两个参数。
说明楼主果断发错区。
Interpreter  是一个类,XP默认脚本分成了好几段,很好找的。在默认脚本编辑器里。
Audio/Graphics是RGSS的内建模块,所以你看不到的,在F1里有其说明。
4.貌似Audio模块的方法不存在于编辑器内吧。
打开F1帮助,找到内建模块,里面的Audio模块,右侧有其所有可调用方法,bgm_stop,bgm_play均在其列。

点评

谢谢解释,可是第一个问题,我还是不明白。但还是很谢你的努力了  发表于 2013-12-18 17:05
RM脚本定制/修改/整合 群:143356012(入群注明来意)
回复

使用道具 举报

梦石
0
星屑
266
在线时间
2355 小时
注册时间
2009-3-13
回帖
2257

贵宾

发表于 2013-12-18 18:35:10 | 显示全部楼层
可以在类内部定义方法读取里面的东西。
  1. #读实例变量的方法:
  2. def var1
  3.   @var1
  4. end
  5. #上面的方法跟下面这个是等价的
  6. attr_reader :var1
复制代码
读常量还可以这样:
  1. class A
  2.   Const1 = 0
  3. end
  4. p A::Const1 #=> 0
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部