| 
本帖最后由 RyanBern 于 2014-11-26 11:58 编辑
x
加入我们,或者,欢迎回来。您需要 登录 才可以下载或查看,没有帐号?注册会员  
 第一个问题:
 一方面:
 
 @map = load_data(sprintf("Data/Map%03d.rxdata", @map_id))
@map = load_data(sprintf("Data/Map%03d.rxdata", @map_id)) 
读出的地图数据储存了地图事件数据events,是<RPG::Event>的数据;
 
 for i in @map.events.keys      @events[i] = Game_Event.new(@map_id, @map.events[i])end
for i in @map.events.keys 
      @events[i] = Game_Event.new(@map_id, @map.events[i]) 
end 
读取地图事件的主键值,作为参数,再设置一个实变量events的哈希表储存Game_Event对象;
 另一方面:
 
 @map_interpreter = Interpreter.new(0, true)
@map_interpreter = Interpreter.new(0, true) 
问题来了,事件怎么和编译器联结在一起的呢?例如,执行“重新设置窗口”内容,而执行语句是包含在事件中的,那么编译器是对事件的执行语句进行编译还是对事件进行编译?于是,我想,编译器要编译执行内容,首先要和事件连结起来,因为执行内容list是事件events的属性。我这样的理解对吗?
 第二个问题:
 Scene_File类中:
 
 def main    # 生成帮助窗口    @help_window = Window_Help.new    @help_window.set_text(@help_text)end
def main 
    # 生成帮助窗口 
    @help_window = Window_Help.new 
    @help_window.set_text(@help_text) 
end 
Window_Help类中:
 
 def set_text(text, align = 0)    # 如果文本和对齐方式的至少一方与上次的不同    if text != @text or align != @align      # 再描绘文本      self.contents.clear      self.contents.font.color = normal_color      self.contents.draw_text(4, 0, self.width - 40, 32, text, align)      @text = text      @align = align      @actor = nil    end    self.visible = trueend
def set_text(text, align = 0) 
    # 如果文本和对齐方式的至少一方与上次的不同 
    if text != @text or align != @align 
      # 再描绘文本 
      self.contents.clear 
      self.contents.font.color = normal_color 
      self.contents.draw_text(4, 0, self.width - 40, 32, text, align) 
      @text = text 
      @align = align 
      @actor = nil 
    end 
    self.visible = true 
end 
我的问题是:@help_window.set_text(@help_text)的参数传递给 set_text(text, align = 0),那么,参数数目不同怎么能进行传递?不是需要参数数目相同才能进行传递么?
 |