Project1

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

作者: gogocake    时间: 2018-7-6 16:51
标题: 请教在菜单中追加页面之后返回键没有用处的问题
我尝试在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. }

作者: Fan723    时间: 2018-7-7 00:25
第二个文件看看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));”
作者: gogocake    时间: 2018-7-7 11:34
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. }
复制代码






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