RPGMakerMV探秘04-游戏加载初窥
RPGMakerMV游戏实质是H5游戏,意味着在浏览器就可以运行。今天我们就用浏览器运行一个测试demo,看看游戏的一个加载过程。
项目中index.html实际就是游戏项目的入口。

11行的title就是窗体上或浏览器标签页上显示的游戏名字。
14-27行是加载js,js目录及其下层目录libs中的js文件都被加载了。
最后一个加载的main.js就会驱动引擎,执行场景的启动。

main.js在启动游戏前,有个关键步骤,加载插件,也就是第5行的动作。
setup方法位于rpg_managers.js中:

plugins变量在index.html加载js时已经完成初始化,其定义在plugins.js中,该js文件中的内容由RPGMaker生成,勿手动添加。
setup中,遍历plugins,将使用状态的插件js加载。我们看看2805行loadScript的实现:

不难看出,简单的HTML DOM操作,将插件(js文件)添加到页面中。
接下来我们看下场景管理器(SceneManager)的run方法:

先做了一些初始化工作,而后切换至Scene_Boot场景。Scene_Boot继承自Scene_Base,Scene_Base也是所有场景的基类。
Scene_Boot是驱动整个游戏的一个场景类,大致的看下它都有哪些功能。

构建时,加载数据库、加载配置、加载窗口图片。
我们在RPGMakerMV软件中操作“数据库”,起内容实际都会以JSON的形式存储在项目中,以下是数据库文件的读取及数据形成。

各个JSON文件对应的数据门类,我们在RPGMakerMV探秘01-目录结构已经详细描述。
这些文件都是通过XMLHttpRequest
(XHR)对象请求而得到的数据。
场景管理器(SceneManager)通过changeScene、updateScene两个方法切换场景,其中很重要的changeScene方法中执行场景的create方法加载场景数据,updateScene方法中执行start方法切换场景。

非测试情况下,401-404行代码就是执行分支。403行看出场景切换至标题场景,也就是我们打开游戏后首先看到的场景。
至此,游戏的加载基本完成,“开始新游戏”、“再续前缘”、“设置”等标题,将切换至相应的场景。