| 
 
| 赞 | 61 |  
| VIP | 321 |  
| 好人卡 | 140 |  
| 积分 | 64 |  
| 经验 | 179075 |  
| 最后登录 | 2025-2-24 |  
| 在线时间 | 1275 小时 |  
 Lv4.逐梦者 (版主) 百合控 
	梦石0 星屑6448 在线时间1275 小时注册时间2013-8-21帖子3657 
 | 
不会
| 本帖最后由 余烬之中 于 2014-2-23 15:34 编辑 
 不会
 
 可以知道这个…………rgss_main { SceneManager.run }
 
 在SceneManager.run中 会首先调用到 DataManager.init 然后进行他自己的功能(场景的管理,主要就只有压栈退栈建背景……)
 
 DataManager.init可以顾名思义 也就是初始化数据 这时会重新读取数据库并建立各种游戏对象
 
 a = Class.new
 # 对 a 的操作
 a = Class.new
 
 显然原来的a已经被抛弃了 GC会负责收集的
 (可以考虑在第二个main前加一句GC.start清理垃圾信息)
 
 重建后SceneManager就会这样:
 @Scene = first_scene_class.new
 @scene.main while @scene
 
 于是是全新的游戏
 
 当然 需要注意一点 按下F12可以重置rgss_main 所以
 
 rgss_main { p 1; SceneManager.run }
 
 rgss_main { p 2; SceneManager.run }
 
 第一次游戏中1 退出后 第二次游戏中2 如果两个main不一样(一个真实一个彩蛋),那么F12并不能返回到第一个
 当然这不算是bug 因为F1里已经说明了……
 
 中间的代码可以新增定义 然后进入游戏后触发不一样的东西 这样两个rgss_main就是一样的 完全不用考虑F12(因为就算考虑了也没什么问题嘛)
 | 
 评分
查看全部评分
 |