主菜单的鬼畜错误

  • 主菜单遇到的问题
    • 原始正常效果
    • 显示的辅助菜单
    • 鬼畜的二级菜单
    • 错误代码部分
    • 修改后的完整代码
    • 最终结果
    • 下一步

主菜单遇到的问题

大家好啊!本计划进行的主菜单人物菜单和金钱菜单的绘制的没有如期进行原因是主菜单绘制出现了一些问题这次就分享一下这上面遇到的问题。

原始正常效果

显示的辅助菜单

显示原始菜单,辅助查看问题原因

通过这两个图片可以看到已经完成了子菜单功能了,嗯!基本万事大吉了…
不过鬼畜的还在后面呢!!!

鬼畜的二级菜单


到这里大家应该已经明白了。
不过再说一下,主菜单界面上,第一个子菜单能够正常运行,但添加了第二个子菜单后却运行鬼畜了,同时将两个子菜单图片显示出来,按键时第二个子菜单只能显示前两个按钮效果;打开第二个子菜单界面时却不显示对应的子菜单图片。

错误代码部分

由于是复制粘贴的代码的原因,对于代码检查上过于疏忽,导致问题的发生。
错误出现在哪里呢?

if(this._OptionsButtons[this._itemCommandWindow.index()]){this._OptionsButtons[this._itemCommandWindow.index()].visible=true;}

这段代码是进行图片更新的,即菜单的更新,查找的不少的时间,都没有找到原因,之后才发现原来是:

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 踩坑二 新仙剑子菜单相关推荐

  1. RPG Maker MV 踩坑一 新仙剑菜单

    RMMV中菜单UI修改出现的错误 RMMV--灵儿续传 鬼畜主菜单 多菜单选中问题 其他问题 学习的教程 最终结果 接下来的要踩的坑 RMMV--灵儿续传 本人计划进入游戏行业的萌新,以前玩过新仙剑- ...

  2. 试图速成的RPG Maker MV 学习笔记(一)

    参考学习的是B站UP主硕明云书的教程:[MV❀RPG制作大师]萌新基础速成教学全集_哔哩哔哩_bilianwa 首先安装完RPG Maker MV,然后熟悉一下软件界面,各个图标和工具都有什么作用. ...

  3. RPG Maker MV 打包安卓和修改分辨率的方法

    最近要处理RPGMV游戏的安卓打包过程,发现打包完了在手机上运行,两边总有黑边,后来发现是分辨率有问题,需要修改. 具体打包方法见B站视频: https://www.bilibili.com/vide ...

  4. RPG Maker mv框架代码解析之窗口图片显示

    文章目录 1 窗口基类的图片描画接口 1.1 Face描画接口 1.2 Icon描画接口 2 描画自定义图片 1 窗口基类的图片描画接口 RPG Maker mv框架中的窗口基类(Window_Bas ...

  5. RPG Maker MV游戏解包

    该文章最新版本请前往:https://www.crowsong.xyz/127.html 前言 使用Petschko's RPG-Maker-MV File-Decrypter进行解包 使用Petsc ...

  6. 【RPG Maker MV】使用技巧1:用自己绘制的图片当做地图

    因为RPG Maker MV本身提供的地图素材可能无法满足需求,比如我想绘制一个大型的建筑物,图形如下: 这是,我们要怎么处理呢? 这时,我们可以用RPG Maker 提供的远景图来完成这一效果.具体 ...

  7. RPG Maker MV插件系统详解与如何编写插件

    最新发布rmmv和以往的版本最大不同就是脚本系统了,整个脚本系统采用html5的javascript编写.和以往的ruby脚本简直天翻地覆 这也是为了实现跨平台运行,也是前所未有的高度编程自由,所有游 ...

  8. 记一次完整的RPG Maker MV游戏逆向过程(准备阶段)

    前言 博主很喜欢剧情类的游戏,仙剑,古剑系列都玩过了.但依然能从一些独立小游戏里找到一些剧情很不错的游戏.独立的RPG游戏很多都是由RPG MAKER MV制作的. 本文只是作者处于兴趣所进行的尝试, ...

  9. 记一次完整的RPG Maker MV游戏逆向系列第四篇

    前言 阅读本篇前请先看之前的几篇分析噢,不然可能会缺失一些前置知识 这篇还是讲 RPG Maker MV 的游戏分析,主要是如何分析一种通过 GameusQuestSystems.js 的加密手段 工 ...

最新文章

  1. 基于libsvm的中文文本分类原型
  2. linux 查找_如何在 Linux 上查找和删除损坏的符号链接 | Linux 中国
  3. 会计记忆总结之三:会计等式与复式记账
  4. node-inspector使用方法
  5. Java命令行界面(第22部分):argparser
  6. C#学习之按钮点击事件
  7. python语言print函数_Python 的 print 函数
  8. STM32工作笔记0083---UCOSIII中断和时间管理
  9. python自学行吗-零基础可以学会python吗?python好学吗?
  10. 如何在macOS Monterey、iOS 15 中使用Apple Notes标签?
  11. python:使用split以.划分句子、对列表进行切片
  12. PHP复习第三天-文件上传
  13. 可见的轮廓线用虚线绘制_机械制图国家标准规定,可见的轮廓线用虚线绘制。...
  14. System.out. 输出到指定文件中
  15. 腾讯爬虫python_【Python爬虫+js逆向】Python爬取腾讯漫画!
  16. 华为南研所2014春季机试题目-2不能入住的房客数
  17. “入门大数据分析:探索海量数据的奥秘“
  18. 微型计算机的 I3 I5是,i3与i5有什么区别
  19. android wifi智能硬件4g,轻便又安全的4G路由 华为随行WiFi评测
  20. win7计算机所有软件无法运行程序,解决win7电脑程序打不开方法

热门文章

  1. 4.3寸RGB屏幕显示泛红
  2. 【动手学因果推断】(二):潜在因果框架
  3. 什么是IP 欺骗以及如何防范?
  4. TLD、gTLD、nTLD、ccTLD、iTLD 以及几者之间的关系
  5. Linux Shell脚本攻略 读书笔记
  6. Hibernate中Criteria的完整用法(Z)
  7. UEFI BIOS启动过程
  8. autoForm.jsp(最新版) 修复了textarea
  9. 什么是RAID及常见RAID详解
  10. Linux系统中安装和管理程序 太详细了