Project1

标题: 问脚本几个常识问题 [打印本页]

作者: kvkv97    时间: 2013-12-18 10:29
标题: 问脚本几个常识问题
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
作者: 国产吃货    时间: 2013-12-18 11:23
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均在其列。
作者: Sion    时间: 2013-12-18 18:35
可以在类内部定义方法读取里面的东西。
  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
复制代码





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1