RPG Maker MV 踩坑二 新仙剑子菜单
生活随笔
收集整理的這篇文章主要介紹了
RPG Maker MV 踩坑二 新仙剑子菜单
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
主菜單的鬼畜錯誤
- 主菜單遇到的問題
- 原始正常效果
- 顯示的輔助菜單
- 鬼畜的二級菜單
- 錯誤代碼部分
- 修改后的完整代碼
- 最終結果
- 下一步
主菜單遇到的問題
大家好啊!本計劃進行的主菜單人物菜單和金錢菜單的繪制的沒有如期進行原因是主菜單繪制出現了一些問題這次就分享一下這上面遇到的問題。
原始正常效果
顯示的輔助菜單
顯示原始菜單,輔助查看問題原因
通過這兩個圖片可以看到已經完成了子菜單功能了,嗯!基本萬事大吉了…
不過鬼畜的還在后面呢!!!
鬼畜的二級菜單
到這里大家應該已經明白了。
不過再說一下,主菜單界面上,第一個子菜單能夠正常運行,但添加了第二個子菜單后卻運行鬼畜了,同時將兩個子菜單圖片顯示出來,按鍵時第二個子菜單只能顯示前兩個按鈕效果;打開第二個子菜單界面時卻不顯示對應的子菜單圖片。
錯誤代碼部分
由于是復制粘貼的代碼的原因,對于代碼檢查上過于疏忽,導致問題的發生。
錯誤出現在哪里呢?
這段代碼是進行圖片更新的,即菜單的更新,查找的不少的時間,都沒有找到原因,之后才發現原來是:
this._itemCommandWindow
它的作用是進行物品菜單圖片的更新,很明顯這不是我們需要的,我們需要的是設置菜單的更新;由于這個部分錯誤導致了更新出現了鬼畜的情況發生。
修改后的完整代碼
var _Scene_Menu_create = Scene_Menu.prototype.create; Scene_Menu.prototype.create = function() {_Scene_Menu_create.call(this);var menuIndexs = [0, 1, 2, 3];var menuItemIndexs = [0, 1];var menuOptionsIndexs = [0, 1, 2, 3, 4];var clickMenus = [function() {this.commandPersonal();SoundManager.playOk();},function() {this.commandPersonal();SoundManager.playOk();},function() {this.commandMenuItem();SoundManager.playOk();},function() {this.commandMenuIOptions();SoundManager.playOk();}];this._cmdMenuButtons = [];for (var i in menuIndexs) {var sprite = new Sprite_Button();sprite.bitmap = ImageManager.loadMenu("MianMenu2");var sx = menuIndexs[i] % 4 * 128;var sy = 0;sprite.y = 130;sprite.x = 15;sprite.setFrame(sx, sy, 128, 192);sprite.setClickHandler(clickMenus[i].bind(this));this._cmdMenuButtons.push(sprite);this.addChild(sprite);}var clickItemMenus = [function() {this.commandItem();SoundManager.playOk();},function() {this.commandPersonal();SoundManager.playOk();}];this._ItemMenuButtons = [];for (var i in menuItemIndexs) {var sprite = new Sprite_Button();sprite.bitmap = ImageManager.loadMenu("MianMenuItem");var sx = menuItemIndexs[i] % 2 * 128;var sy = 0;sprite.y = 147;//70sprite.x = 71;//50sprite.setFrame(sx, sy, 128, 128);sprite.setClickHandler(clickItemMenus[i].bind(this));this._ItemMenuButtons.push(sprite);this.addChild(sprite);}var clickOptionsMenus = [function() {this.commandSave();SoundManager.playOk();},function() {this.commandContinue();SoundManager.playOk();},function() {this.commandPersonal();SoundManager.playOk();},function() {this.commandPersonal();SoundManager.playOk();},function() {this.commandGameEnd();SoundManager.playOk();}];this._OptionsButtons = [];for (var i in menuOptionsIndexs) {var sprite = new Sprite_Button();sprite.bitmap = ImageManager.loadMenu("MianMenuSys");var sx = menuOptionsIndexs[i] % 5 * 192;var sy = 0;sprite.y = 49;//70sprite.x = 71;//50sprite.setFrame(sx, sy, 192, 224);sprite.setClickHandler(clickOptionsMenus[i].bind(this));this._OptionsButtons.push(sprite);this.addChild(sprite);}//主菜單窗口//this.createCommandWindow();//主菜單物品窗口this.createItemCommandWindow();//主菜單系統窗口this.createOptionsCommandWindow(); };var _Scene_Menu_update = Scene_Menu.prototype.update; Scene_Menu.prototype.update = function(){_Scene_Menu_update.call(this);var scmdButtons= this._cmdMenuButtons;for(var i in scmdButtons){this._cmdMenuButtons[i].visible=false;}if(this._cmdMenuButtons[this._commandWindow.index()]){this._cmdMenuButtons[this._commandWindow.index()].visible=true;}var scmdItemButtons= this._ItemMenuButtons;for(var i in scmdItemButtons){this._ItemMenuButtons[i].visible=false;}if(this._ItemMenuButtons[this._itemCommandWindow.index()]){this._ItemMenuButtons[this._itemCommandWindow.index()].visible=true;}var scmdOptionsButtons= this._OptionsButtons;for(var i in scmdOptionsButtons){this._OptionsButtons[i].visible=false;}if(this._OptionsButtons[this._optionsCommandWindow.index()]){this._OptionsButtons[this._optionsCommandWindow.index()].visible=true;} }最終結果
由于操作按鈕過多,因此放幾張確定下實際效果沒有問題就行。
下一步
接下來確定要處理的包括人物菜單UI,狀態菜單UI,系統音樂及音效按鈕操作,S/L的UI操作及游戲開始菜單的UI美化,不知道還會遇到多少的坑在等待的我呢!!!
總結
以上是生活随笔為你收集整理的RPG Maker MV 踩坑二 新仙剑子菜单的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 跨境外贸独立站怎么做域名解析?
- 下一篇: python爬虫爬取wallpapers