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 编辑
# Window_Selectable 里面,定义了 help_window 的读写方法,而在初始化时没有,这个
# @help_window 的值就为 nil
attr_reader :help_window
def help_window=(help_window)
@help_window = help_window
# 刷新帮助文本 (update_help 定义了继承目标)
if self.active and @help_window != nil
update_help
end
end
# 在 Window_Selectable 的子类,比如:Window_Item, 在物品场景里:
@item_window = Window_Item.new
@help_window = Window_Help.new
@item_window.help_window = @help_window
# 这里就给 @item_window 的实例变量 @help_window 赋值为 @help_window 。
# 所以一般能够关联帮助窗口的窗口,比如上面的 Window_Item ,都定义有 update_help
复制代码
作者:
cinderelmini
时间:
2014-12-19 21:22
上面已经把该说的说完了……
总之呢……XXX.help_window事实上就是个懒癌产物,就是为了方便传送内容进去(死!
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1