本帖最后由 余音·魔眼 于 2018-11-17 20:07 编辑 楼主能改出来已经很不错了,不过不知道楼主有没有注意到这一点,跳转到读档界面后按x键就会直接退出窗口。那是因为本身Scene_Load的父类Scene_File中含有return_scene方法,它在 RUBY 代码复制
这是因为楼主修改后依然调用的是goto,也就是SceneManager(这是个模块)中的goto方法,在SceneManager的49-54行位置可以找到 RUBY 代码复制
它与55-61行的call方法有什么区别呢,再来看一下call方法 RUBY 代码复制
我们再来看一下return_scene方法, return_scene定义在所有Scene 类(场景类)的父类中,在108-113行位置: RUBY 代码复制
调用的是SceneManager的.return方法,在SceneManager的62-67行位置 RUBY 代码复制
这里意思是将@stack存储的最后一个场景的类赋给当前场景,并删除之前存储的最后一个场景。好了我们知道goto方法中并没有存储之前的场景,所以这时@stack就为空数组,空数组本身就没任何元素,所以就不能删元素,所以就为nil了(这里不懂的话帮助文档Array当中都有),@stack.pop为nil,所以这时@scene = nil,@scene就为nil了,@scene为nil时就会自动退出游戏,不懂的话可以参考exit方法,也就是74-79行。 RUBY 代码复制
另外不介意在默认脚本中修改,应该以插件脚本的方式插入脚本库当中,以免修改错误还得从新工程复制重来,插件脚本可以这么写: RUBY 代码复制
|
不是打击LZ,不过最好讲一讲猴子补丁。 直接改默认代码的话,改错一步还要从新工程里复制。 所以最好是复制一份Scene_Gameover到插件脚本的地方,删除不要的部分,再修改。 另外,凡是改默认代码尤其是使用率高的,都建议使用别名。 这样可以增加你的代码和别人代码的兼容性。 用alias关键字给你的方法起别名,然后新增一个module,在module里设置一个这样的开关, 用于控制是使用默认的返回标题还是打开读档。 这样会更加符合插件脚本的思想。 |
站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作
GMT+8, 2024-5-5 10:24
Powered by Discuz! X3.1
© 2001-2013 Comsenz Inc.