问题1,参考LS,self指代的永远是当前层面上的对象,这里指的就是Window_Base这个类的你正操作的对象。如果要更深层次理解self,可以看Taroxd的这个帖子:https://rpg.blue/forum.php?mod=v ... p;page=2#pid2516757
问题2,$game_system的@windowskin_name的作用是实时监测窗口皮肤的改变,如果窗口在显示的过程中皮肤被改变,RGSS能够做出相应。
class Window_Base < Window #-------------------------------------------------------------------------- # ● 刷新画面 #-------------------------------------------------------------------------- def update super # 如果窗口的外观被变更了、再设置 if $game_system.windowskin_name != @windowskin_name @windowskin_name = $game_system.windowskin_name self.windowskin = RPG::Cache.windowskin(@windowskin_name) end end end
class Window_Base < Window
#--------------------------------------------------------------------------
# ● 刷新画面
#--------------------------------------------------------------------------
def update
super
# 如果窗口的外观被变更了、再设置
if $game_system.windowskin_name != @windowskin_name
@windowskin_name = $game_system.windowskin_name
self.windowskin = RPG::Cache.windowskin(@windowskin_name)
end
end
end
这是Window_Base类的update方法,很少有人关注这个方法。它的作用就是把$game_system的windowskin_name和它自身的@windowskin_name比较,如果不一样了就更改。
|