欢迎光临散文网 会员登陆 & 注册

RPGMakerMV探秘07-游戏标题界面

2020-10-27 23:57 作者:狂奔小菜鸡  | 我要投稿

        通过RPGMakerMV探秘04-游戏加载初窥,我们已经知道,场景管理器SceneManager在处理完Scene_Boot后,Scene_Boot这个场景的生命周期也就结束了,紧接着就会调用goto函数,来到Scene_Title,Scene_Title算是玩家接触到真正意义上能够周期性update的场景。

        本文我们就来研究下Scene_Title这个场景,还是从代码开始,构造函数并没有做什么。SceneManager的goto方法如下:

SceneManager.goto

        goto方法接收一个场景类,将场景对象赋值给_nextScene变量。这里讨论的是Scene_Title,当然参数sceneClass就是Scene_Title。

        之后SceneManager会调用update方法,我们关注updateMain方法,会发现,其中又调用了changeScene和updateScene。

changeScene

        我们能看到changScene中,做了一些场景切换的动作,最重要的是,调用了Scene_Title的create方法,那我们回过头来看下,Scene_Title中create方法又做了哪些操作。

create

        create方法是一个场景的初始化方法,被各个场景重载,Scene_Title中create主要干了以上一些事情,玩家肉眼所见的就是标题界面的背景图、文字标题、命令窗口(开始游戏、继续游戏等组成的一个小窗口)。

        我们先回到上面提到updateScene方法:

updateScene

        updateScene中会执行start方法,但是必须等待资源异步加载完毕。之后便会执行update方法。如果玩家不做操作,那么将停留在标题界面不停刷新。

        接下来我们来了解下,作为我一样的初学者,能对标题界面做什么。

        初始化方法中有个createBackground方法,他主要就是创建了标题界面的背景。在不使用插件的情况下,使用系统设置的背景图。

createBackground

        使用MV数据库设置标题背景的地方如图:

标题画面

        如果你有设计好的背景图,可以直接放到img\titles1和img\titles2中,一般情况下titles1为整体背景图,titles2中为边框或者装饰,会覆盖在titles1上。

        设置完背景图,当然需要一个响当当的游戏标题,比如:XXX伏魔记或者XXX大冒险等等。createForeground方法便是绘制文字标题的。

文字标题绘制

        是否绘制和标题文字均在数据库的系统标签中进行设置。

        如果你对标题的位置、字体大小、外边缘颜色等有自己的要求,可以修改以上代码达到效果。(注1:该部分为引擎源码,修改只做学习用,在真正开发过程中,是不建议修改引擎源码的。注2:文字标题很有违和感,比较常见的还是通过软件设计的图片形式标题,后面再说)

        接下来,我们看下玩家能操作的命令窗口。默认情况下,命令窗口如下:

命令窗口

        其对应的代码大致如下:

命令窗口代码

        开始游戏、继续游戏、设置分别对应三个不同的处理方法。每个方法最后都是进行场景的切换,但是我们看到分别用了goto和push,我们可以理解goto就是一去不复还,切换了就切不回来了,而push会进行一个压栈操作,切换至另外一个场景时,仍然保留上一个场景,为玩家切回来留了一手。

        如果我们想在命令窗口下方再加一行目录,比如“鸣谢”命令,我们该怎么操作呢?

        首先肯定是在createCommandWindow中新增一行,这里因为是测试,就把handler的第一个参数设置为‘test’,绑定的操作我们可以直接使用“设置”的方法。

命令测试

        当然这样还不够,这里只是设做了一个操作与标签的绑定,我们看到第一行,这个命令窗口,我们是通过Window_TitleCommand创建的。

命令清单

        在命令清单中加上我们想要的命令,才能在界面上显示相应的命令,addCommand中第一个参数即是命令显示文字,第二个参数作为该命令的标签,与createCommandWindow中handler一致。

        修改完成后,我们的命令窗口界面如下:

测试命令窗口

        选择“测试”后点击,与“设置”效果一样。

        再次说明:上述修改的代码均在引擎核心源码中进行,只是为了学习方便,开发过程中谨慎操作。

        好了,本文的坑先挖到这里,欢迎喜欢编码,喜欢游戏制作的小伙伴交流讨论。

RPGMakerMV探秘07-游戏标题界面的评论 (共 条)

分享到微博请遵守国家法律