设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1519|回复: 2
打印 上一主题 下一主题

[已经解决] 关于Window_Command控制消失的问题?

[复制链接]

Lv3.寻梦者

梦石
0
星屑
3574
在线时间
2338 小时
注册时间
2015-8-25
帖子
960

开拓者

跳转到指定楼层
1
发表于 2016-9-20 23:16:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 七重 于 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
不过还是不可性,打开二级菜单时,一级菜单还是会消失。
是我思路错了吗?
还是语法不对呢?(不能这样覆盖?)

--
第五个解决方法:

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

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21631
在线时间
9415 小时
注册时间
2012-6-19
帖子
7118

开拓者短篇九导演组冠军

2
发表于 2016-9-21 08:59:08 | 只看该作者
本帖最后由 喵呜喵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 控制的是选项无法选择而已(光标变灰,不再对上下键确定键有反应)

评分

参与人数 1星屑 +250 梦石 +1 收起 理由
RaidenInfinity + 250 + 1 楼主认可的解答

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3574
在线时间
2338 小时
注册时间
2015-8-25
帖子
960

开拓者

3
 楼主| 发表于 2016-9-21 09:40:29 | 只看该作者
本帖最后由 七重 于 2016-9-21 11:14 编辑
喵呜喵5 发表于 2016-9-21 08:59
不能这样覆盖,因为 RM SceneManager 里定义的场景管理机制,一旦做了 scene 的切换,前一个 scene 必定会 ...


十分感谢你的解答!

  已经解决了。

  是通过将scene都写在一起的方法实现的。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-17 00:06

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表