RPGMakerMV探秘04-游戲加載初窺
????RPGMakerMV游戲?qū)嵸|(zhì)是H5游戲,意味著在瀏覽器就可以運(yùn)行。今天我們就用瀏覽器運(yùn)行一個(gè)測(cè)試demo,看看游戲的一個(gè)加載過程。
????項(xiàng)目中index.html實(shí)際就是游戲項(xiàng)目的入口。

????11行的title就是窗體上或?yàn)g覽器標(biāo)簽頁(yè)上顯示的游戲名字。
????14-27行是加載js,js目錄及其下層目錄libs中的js文件都被加載了。
????最后一個(gè)加載的main.js就會(huì)驅(qū)動(dòng)引擎,執(zhí)行場(chǎng)景的啟動(dòng)。

????main.js在啟動(dòng)游戲前,有個(gè)關(guān)鍵步驟,加載插件,也就是第5行的動(dòng)作。
????setup方法位于rpg_managers.js中:

????plugins變量在index.html加載js時(shí)已經(jīng)完成初始化,其定義在plugins.js中,該js文件中的內(nèi)容由RPGMaker生成,勿手動(dòng)添加。
????setup中,遍歷plugins,將使用狀態(tài)的插件js加載。我們看看2805行l(wèi)oadScript的實(shí)現(xiàn):

????不難看出,簡(jiǎn)單的HTML DOM操作,將插件(js文件)添加到頁(yè)面中。
????
? ? 接下來(lái)我們看下場(chǎng)景管理器(SceneManager)的run方法:

????先做了一些初始化工作,而后切換至Scene_Boot場(chǎng)景。Scene_Boot繼承自Scene_Base,Scene_Base也是所有場(chǎng)景的基類。
????Scene_Boot是驅(qū)動(dòng)整個(gè)游戲的一個(gè)場(chǎng)景類,大致的看下它都有哪些功能。
????

????構(gòu)建時(shí),加載數(shù)據(jù)庫(kù)、加載配置、加載窗口圖片。
????我們?cè)赗PGMakerMV軟件中操作“數(shù)據(jù)庫(kù)”,起內(nèi)容實(shí)際都會(huì)以JSON的形式存儲(chǔ)在項(xiàng)目中,以下是數(shù)據(jù)庫(kù)文件的讀取及數(shù)據(jù)形成。

????各個(gè)JSON文件對(duì)應(yīng)的數(shù)據(jù)門類,我們?cè)?a target="_blank" >RPGMakerMV探秘01-目錄結(jié)構(gòu)已經(jīng)詳細(xì)描述。
????這些文件都是通過XMLHttpRequest
(XHR)對(duì)象請(qǐng)求而得到的數(shù)據(jù)。
? ? 場(chǎng)景管理器(SceneManager)通過changeScene、updateScene兩個(gè)方法切換場(chǎng)景,其中很重要的changeScene方法中執(zhí)行場(chǎng)景的create方法加載場(chǎng)景數(shù)據(jù),updateScene方法中執(zhí)行start方法切換場(chǎng)景。

????非測(cè)試情況下,401-404行代碼就是執(zhí)行分支。403行看出場(chǎng)景切換至標(biāo)題場(chǎng)景,也就是我們打開游戲后首先看到的場(chǎng)景。
????至此,游戲的加載基本完成,“開始新游戲”、“再續(xù)前緣”、“設(shè)置”等標(biāo)題,將切換至相應(yīng)的場(chǎng)景。
????