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

Project1

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

[有事请教] 请教在菜单中追加页面之后返回键没有用处的问题

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2147
在线时间
1461 小时
注册时间
2009-2-6
帖子
214

开拓者

跳转到指定楼层
1
发表于 2018-7-6 16:51:19 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
我尝试在RMMV中默认的菜单界面中将【整队】选项改成了【笔记】,之后写了一个简单的笔记界面(目前该界面只有一个框体和测试用的文本),并且可以通过在菜单中点击该选项进入到笔记界面,但是进入该界面之后点击返回键无法回到菜单。
想请问各位大佬如何解决返回键没有用的问题,我在场景之中加入了setHandler的cancel设置,不过依旧不行,下面是代码
JAVASCRIPT 代码复制
  1. function Window_NoteList()
  2. {
  3.         this.initialize.apply(this, arguments);
  4. }
  5. Window_NoteList.prototype = Object.create(Window_Selectable.prototype);
  6. //创建构造器
  7. Window_NoteList.prototype.constructor = Window_NoteList;
  8. //初始化
  9. Window_NoteList.prototype.initialize = function(x, y, width, height)
  10. {
  11.         Window_Selectable.prototype.initialize.call(this, x, y, width, height);
  12.         this.refresh();
  13. };
  14. //*窗体的字体设置
  15. Window_NoteList.prototype.standardFontSize = function() {        return 36;        }
  16. //刷新
  17. Window_NoteList.prototype.refresh = function()
  18. {
  19.         this.contents.clear();
  20.         this.drawText("测试文字1", 48, 0);
  21.         this.drawText("测试文字2", 48, 48);
  22. };

JAVASCRIPT 代码复制
  1. //=============================================================================
  2. // 绘制场景
  3. //=============================================================================
  4. function Scene_CakeNote()
  5. {
  6.         this.initialize.apply(this, arguments);
  7. }
  8. Scene_CakeNote.prototype = Object.create(Scene_MenuBase.prototype);
  9. //-------------------------------------------------------------
  10. //构造器
  11. Scene_CakeNote.prototype.constructor = Scene_CakeNote;
  12. //初始化
  13. Scene_CakeNote.prototype.initialize = function()
  14. {
  15.     Scene_MenuBase.prototype.initialize.call(this);
  16. };
  17. Scene_CakeNote.prototype.create = function()
  18. {
  19.         //在这个界面创建这个场景中的各种窗口
  20.         Scene_MenuBase.prototype.create.call(this);
  21.         this.createNoteListWindow();
  22. };
  23. Scene_CakeNote.prototype.exitScene = function()
  24. {
  25.     alert("cancel!");
  26.     this.popScene();
  27. };
  28. Scene_CakeNote.prototype.createNoteListWindow = function()
  29. {
  30.         //创建场景中左上方显示笔记列表文字的窗口
  31.         this._NoteListWindow = new Window_NoteList(0, 0, Graphics.boxWidth, Graphics.boxHeight);
  32.     this.addWindow(this._NoteListWindow);
  33.     this._NoteListWindow.setHandler('cancel', this.exitScene.bind(this));
  34. };
  35. //=============================================================================
  36. // Scene_Menu
  37. //=============================================================================
  38. Scene_Menu.prototype.Scene_Old_CreateCommandWindow = Scene_Menu.prototype.createCommandWindow;
  39. Scene_Menu.prototype.createCommandWindow = function()
  40. {
  41.         this.Scene_Old_CreateCommandWindow();
  42.         this._commandWindow.setHandler('note',      this.commandNote.bind(this));
  43. };
  44. Scene_Menu.prototype.commandNote = function()
  45. {
  46.     SceneManager.push(Scene_CakeNote);
  47. };
  48. //=============================================================================
  49. // Window_MenuCommand
  50. //=============================================================================
  51. Window_MenuCommand.prototype.Window_old_Cake_addOriginalCommands = Window_MenuCommand.prototype.addOriginalCommands;
  52. Window_MenuCommand.prototype.addOriginalCommands = function()
  53. {
  54.         this.Window_old_Cake_addOriginalCommands();
  55.         this.addCommand("笔记", 'note', true);
  56. }

Lv3.寻梦者

梦石
0
星屑
2147
在线时间
1461 小时
注册时间
2009-2-6
帖子
214

开拓者

3
 楼主| 发表于 2018-7-7 11:34:44 | 只看该作者
Fan723 发表于 2018-7-7 00:25
第二个文件看看33行
把“this._NoteListWindow.setHandler('cancel', this.exitScene.bind(this));”
换成 ...

是在插件中的,开一个默认工程之后把代码复制过去菜单里面应该会多一个笔记选项,可以打开但是无法返回,我感觉有可能是返回无法找到菜单中光标对应的位置问题但也不一定,我把代码稍微改了改,直接插入插件应该就能显示出菜单中笔记选项,在整队的下面,但是还是无法返回。
  1. function Window_NoteList()
  2. {
  3.         this.initialize.apply(this, arguments);
  4. }
  5. Window_NoteList.prototype = Object.create(Window_Selectable.prototype);
  6. //创建构造器
  7. Window_NoteList.prototype.constructor = Window_NoteList;
  8. //初始化
  9. Window_NoteList.prototype.initialize = function(x, y, width, height)
  10. {
  11.         Window_Selectable.prototype.initialize.call(this, x, y, width, height);
  12.         this.refresh();
  13. };
  14. //*窗体的字体设置
  15. Window_NoteList.prototype.standardFontSize = function() {        return 36;        }
  16. //刷新
  17. Window_NoteList.prototype.refresh = function()
  18. {
  19.         this.contents.clear();
  20.         this.drawText("测试文字1", 48, 0);
  21.         this.drawText("测试文字2", 48, 48);
  22. };
  23. //=============================================================================
  24. // 绘制场景
  25. //=============================================================================
  26. function Scene_CakeNote()
  27. {
  28.         this.initialize.apply(this, arguments);
  29. }
  30. Scene_CakeNote.prototype = Object.create(Scene_MenuBase.prototype);
  31. //-------------------------------------------------------------
  32. //构造器
  33. Scene_CakeNote.prototype.constructor = Scene_CakeNote;
  34. //初始化
  35. Scene_CakeNote.prototype.initialize = function()
  36. {
  37.     Scene_MenuBase.prototype.initialize.call(this);
  38. };
  39. Scene_CakeNote.prototype.create = function()
  40. {
  41.         //在这个界面创建这个场景中的各种窗口
  42.         Scene_MenuBase.prototype.create.call(this);
  43.         this.createNoteListWindow();
  44. };
  45. Scene_CakeNote.prototype.createNoteListWindow = function()
  46. {
  47.         //创建场景中左上方显示笔记列表文字的窗口
  48.         this._NoteListWindow = new Window_NoteList(0, 0, Graphics.boxWidth, Graphics.boxHeight);
  49.     this.addWindow(this._NoteListWindow);
  50.     this._NoteListWindow.setHandler('cancel', this.popScene.bind(this));
  51. };
  52. //=============================================================================
  53. // Scene_Menu
  54. //=============================================================================
  55. Scene_Menu.prototype.Scene_Old_CreateCommandWindow = Scene_Menu.prototype.createCommandWindow;
  56. Scene_Menu.prototype.createCommandWindow = function()
  57. {
  58.         this.Scene_Old_CreateCommandWindow();
  59.         this._commandWindow.setHandler('note',      this.commandNote.bind(this));
  60. };
  61. Scene_Menu.prototype.commandNote = function()
  62. {
  63.     SceneManager.push(Scene_CakeNote);
  64. };
  65. //=============================================================================
  66. // Window_MenuCommand
  67. //=============================================================================
  68. Window_MenuCommand.prototype.Window_old_Cake_addOriginalCommands = Window_MenuCommand.prototype.addOriginalCommands;
  69. Window_MenuCommand.prototype.addOriginalCommands = function()
  70. {
  71.         this.Window_old_Cake_addOriginalCommands();
  72.         this.addCommand("笔记", 'note', true);
  73. }
复制代码

点评

还是不行啊,我将你的代码作为插件放到新建工程里面,什么都没有出现啊。不是版本问题吧?我是1.5的。  发表于 2018-7-7 16:48
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
19367
在线时间
2318 小时
注册时间
2015-7-4
帖子
938
2
发表于 2018-7-7 00:25:48 | 只看该作者
第二个文件看看33行
把“this._NoteListWindow.setHandler('cancel', this.exitScene.bind(this));”
换成“this._NoteListWindow.setHandler('cancel', this.popScene.bind(this));”试试;
不知道会不会还返不回游戏,会的话试试在42行
“this._commandWindow.setHandler('note',      this.commandNote.bind(this));”
下面加一句:
“this._commandWindow.setHandler('cancel',    this.popScene.bind(this));”

点评

要不你对调一下32行与33行位置试一下。你这是在系统文件里修改的还是写成插件的?我用插件调试怎么没效果呀!  发表于 2018-7-7 10:00
试了下还是不行。。之前exitScene测试了按cancel似乎根本没进入这个方法里面,直接用popScene也不行  发表于 2018-7-7 00:45
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-4 07:00

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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