Project1

标题: 问一个窗口的问题 [打印本页]

作者: kvkv97    时间: 2014-12-19 11:21
标题: 问一个窗口的问题
  #---------------------------------------------------------------
  # ● 设置光标的位置
  #     index : 新的光标位置
  #---------------------------------------------------------------
  def index=(index)
    @index = index
    # 刷新帮助文本 (update_help 定义了继承目标)
    if self.active and @help_window != nil
      update_help
    end
    # 刷新光标矩形
    update_cursor_rect
  end
a,既然判断@help_window != nil,那么@help_window就必须有内容了,可是找遍RGSS,没找到@help_window的内容
b,update_help找不到定义,这是什么类的方法的?
c,光标是什么
作者: RyanBern    时间: 2014-12-19 13:14
这是Window_Selectable的一个片段,有些地方确实不太好理解。
a.@help_window的意义是Window_Selectable的关联窗口,也就是说,一般情况下,Window_Help不能单独存在,而是要有个辅助在作用,用于更详细说明与其关联的Window_Selectable内容的。举个例子来说,游戏中默认的道具窗口,它的上方就有一个帮助窗口来显示选中的道具的说明。在这个例子中,那个Window_Item(是Window_Selectable的子类)的@help_window就有了定义。具体的你可以查看Scene_Item里面,会看到相关内容。
b.注意到脚本后面有一句(update_help定义了继承目标),那么这句话是什么意思呢?意思就是说,在Window_Selectable中并不包含update_help的定义,而对update_help的定义要放在它的子类中去。要注意的是,如果设置了@help_window的内容,就必须同时定义update_help,否则会报错。因此update_help的定义出现在Window_Selectable的各个子类上。你可以在Window_Item,Window_Skill中找到它们的影子。换句话说,不要给一个Window_Selectable类的对象直接赋予@help_window实例变量,否则,你懂的。
c.光标就是Window_Selectable里面闪烁的矩形
作者: 芯☆淡茹水    时间: 2014-12-19 19:51
本帖最后由 芯☆淡茹水 于 2014-12-19 19:55 编辑
  1. # Window_Selectable 里面,定义了 help_window 的读写方法,而在初始化时没有,这个
  2. # @help_window 的值就为 nil

  3.   attr_reader   :help_window
  4.   
  5.   def help_window=(help_window)
  6.     @help_window = help_window
  7.     # 刷新帮助文本 (update_help 定义了继承目标)
  8.     if self.active and @help_window != nil
  9.       update_help
  10.     end
  11.   end

  12. # 在 Window_Selectable 的子类,比如:Window_Item, 在物品场景里:

  13.   @item_window = Window_Item.new
  14.   @help_window = Window_Help.new
  15.   @item_window.help_window = @help_window
  16.   
  17. # 这里就给 @item_window 的实例变量 @help_window 赋值为 @help_window 。

  18. # 所以一般能够关联帮助窗口的窗口,比如上面的 Window_Item ,都定义有 update_help
复制代码

作者: cinderelmini    时间: 2014-12-19 21:22
上面已经把该说的说完了……
总之呢……XXX.help_window事实上就是个懒癌产物,就是为了方便传送内容进去(死!





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