mike1735 发表于 2014-2-9 19:20
这个问题我用类变量解决了。但我还有个问题。首先我确实使用的return。如下。而且为了记录光标位置我用了@l ...
我们知道 场景类一般会调用create_command_window来创建命令窗口
这个方法里面一定有一句@some_window = Window_Something.new(perhaps args)
如果这个语句只执行一次 那么显然会保存位置
但是场景每次出现都会执行 因为#-------------------------------------------------------------------------- # ● 主逻辑 #-------------------------------------------------------------------------- def main start post_start update until scene_changing? pre_terminate terminate end
#--------------------------------------------------------------------------
# ● 主逻辑
#--------------------------------------------------------------------------
def main
start
post_start
update until scene_changing?
pre_terminate
terminate
end
上面这一段来自Scene_Basedef start super create_command_window create_gold_window create_status_window end
def start
super
create_command_window
create_gold_window
create_status_window
end
这一段来自Scene_Menu
所以 尽管场景类还是原来的(压栈退栈) 但是窗口已经被重新创建了
而选择的位置是保存在窗体实例中的
所以 选择位置不能是实例变量 而必须是全局或者类变量
由此易知 如果退出场景时 选择位置保存在场景实例中 就不需要类变量了 |