RPGMakerMV探秘08-插件分析3(图片标题及命令)
到目前为止,我们的标题和命令窗口都还是使用的文字,对于文字的编辑,大概包括字体,大小,边缘粗细,扭曲等等。但是有些情况还是不能满足我们的需求。如果我们想把标题和命令窗口做得与我们的标题背景更加契合,甚至将标题和命令窗口与整个游戏风格相呼应,使用图片可能会更加方便。
今天我们使用MOG_TitlePictureCom.js插件让标题界面的标题和命令窗口更加没有违和感。首先,我们的基础需求大概如下:
取消文字标题,使用图片标题。
取消命令窗口,使用多个图片代替,且图片能在选中与非选中情况下有不同展示效果。
图片命令同样实现原命令窗口的基础功能。
增加光标,能在命令间切换,且有动画效果。
MOG_TitlePictureCom.js插件的功能几乎能满足上述需求。
话不多说,开始撸:

基本参数包括光标、标题、命令的基础位置,是否展示等。
文字标题的隐藏,我们可以使用RPGMakerMV数据库中的设置,禁用文字标题的绘制。当然本插件在插件中对文字标题做出了处理,如果选择使用图片标题,即使勾选了绘制文字标题,也会被清除。
命令窗口的隐藏使用了如下方法:

以上两步让标题界面相对干净了一些,接下来在create标题场景的时候,我们就需要加入自己的定制需求了。

create_picture_commands、createCursorCommand分别创建命令及光标。
这里单独看下create_picture_commands方法:

该方法主要读取参数中的图片位置,就是你想把这些图片放在标题场景的哪个位置,再就是根据窗口命令的个数,读取资源,创建图片精灵,添加至图层。_com_pictures_data是一个数据数组,存储命令图片精灵的位置及宽高。供后续的边缘检测使用。
接下来老生常谈周期函数update,命令窗口的update主要是负责命令图片的展示及触摸事件的检测。前者根据数据在相应位置展示相应的命令图片(命令图片的选中和未选中状态被合为一张图),两个样式需要根据数据判断情况进行展示。后者根据触摸位置,检测是否在相应图片范围内,进行后续事件。this._commandWindow.processOk()这句就是利用创建commandWindow时,绑定在各个命令上的handler,进行后续处理。


上图中的updateCursor是光标的周期函数方法,updateCursor负责计算光标的位置,并进行移动。updateCursorSlide是为了实现光标在标题界面上左右晃动而设计的偏移算法。通过该算法,如果玩家不进行任何操作,光标的位置会循环的在左右进行改变,形成一个晃动的动态效果。

如果在参数中设置创建标题为true,那么createTitleSprite方法便会利用removeChild把文字标题移除,再把图片标题加上。
通过该插件实现的大概下过如下(这个效果真的没法看!!!):

当然这些素材的位置,及所有的素材设计,你都可以自定义。统一的风格,良好的色彩搭配,会让你的标题界面让玩家眼前一亮。
当然标题界面还可以加入GIF及视频,这对素材的要求稍高,后文就不再继续展开了。标题篇就此打住,后面准备开新坑。
注:以上分析均为作者兴趣出发,自学有感,对于js的认知还存在不足或者偏差,如有错误,欢迎指正。