Project1

标题: 关于Window_Command控制消失的问题? [打印本页]

作者: 七重    时间: 2016-9-20 23:16
标题: 关于Window_Command控制消失的问题?
本帖最后由 七重 于 2016-10-9 20:26 编辑

关于在编写菜单的时候遇到的问题。


我采用了这样的结构:

class Scene_Menu(一级菜单) < Scene_MenuBase

class Window_一级菜单 < Window_Command

class Scene_Menu(二级菜单) < Scene_MenuBase

class Window_二级菜单 < Window_Command

二级菜单是由一级菜单中的指令打开的。

这样打开二级菜单的时候,一级菜单就会消失。



现在我希望修改为在打开二级菜单的时候,一级菜单也不会消失。

我的做法是在
  class Window_一级菜单 < Window_Command
中加入了:

    def process_ok
    if current_item_enabled?
      Sound.play_ok
      Input.update
#       deactivate
      call_ok_handler
    else
      Sound.play_buzzer
    end
  end

注释掉了deactivate
不过还是不可性,打开二级菜单时,一级菜单还是会消失。
是我思路错了吗?
还是语法不对呢?(不能这样覆盖?)

--
第五个解决方法:

生成一个只有样子没有方法的一级菜单。


作者: 喵呜喵5    时间: 2016-9-21 08:59
本帖最后由 喵呜喵5 于 2016-9-21 09:01 编辑

不能这样覆盖,因为 RM SceneManager 里定义的场景管理机制,一旦做了 scene 的切换,前一个 scene 必定会执行 terminate 方法把 scene 里的窗口释放掉

要解决的话,四个思路:
1.将 Scene 全部写在一个 class 内
2.切换 scene 前截图,新 scene 使用该截图作为背景(适用于新窗口在旧窗口之上的情况,看这个 https://rpg.blue/home.php?mod=sp ... o=blog&id=13837
3.在新 scene 中创建一个只包含外观不包含任何功能的之前 scene 的窗口(适用于新窗口在旧窗口之下的情况)
4. 重写 SceneManager 相关代码

另外,你对 deactivate 的功能也理解错了,deactivate 控制的是选项无法选择而已(光标变灰,不再对上下键确定键有反应)
作者: 七重    时间: 2016-9-21 09:40
本帖最后由 七重 于 2016-9-21 11:14 编辑
喵呜喵5 发表于 2016-9-21 08:59
不能这样覆盖,因为 RM SceneManager 里定义的场景管理机制,一旦做了 scene 的切换,前一个 scene 必定会 ...


十分感谢你的解答!

  已经解决了。

  是通过将scene都写在一起的方法实现的。




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1