最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

RPGMakerMV探秘02-存檔

2020-08-09 15:48 作者:狂奔小菜雞  | 我要投稿

????一般情況下,RPGMaker都是單機游戲,單機游戲必然會涉及到存檔,本文我們就來聊一聊RPGMakerMV的存檔。

????探秘系列的第一篇我們已經(jīng)介紹,引擎存檔位置在save目錄下。

????其實新建項目時,是不存在save目錄的,當(dāng)進行存檔時,才會新建save目錄。

????不使用插件的情況下,存檔位置有20個,如果超過了20就只能覆蓋之前的存檔。

存檔界面


????當(dāng)我進行首次存檔時(選的第一個存檔位置),將產(chǎn)生以下文件。

首次存檔(存檔位置1)

????兩個rpgsave文件打開后都是“天書”,這不是人能看懂的。想知道這些“天書”藏了什么秘密,我們就一起來探索一下。


????首先我們找到存檔界面:

????rpg_scenes.js中定義了Scene_Save,Scene_Save繼承自Scene_File。在Scene_Save部分,我們發(fā)現(xiàn)了一個方法onSavefileOk,這個方法應(yīng)該就是存檔的動作。

Scene_Save存檔動作

? ? 其中核心的部分就4行,DataManager.saveGame(this.savefileId())。savefileId是文件編號,也就是存檔界面中文檔X里的X。


????接著,我們來到rpg_managers.js,找到上述的saveGame方法。

DataManager.saveGame

????看到第四行,該方法又調(diào)用了本身的saveGameWithoutRescue,那只有接著往下看。


saveGameWithoutRescue

????看到這里,我們大概看到了一些數(shù)據(jù)的處理,逐漸的,我們開始了解到“天書”的形成。

????第二行,this.makeSaveContents(),字面意思就是形成存儲內(nèi)容,去看看如何形成,包含了哪些東西。

????JsonEx.stringify是將對象JSON序列化轉(zhuǎn)換成JSON字符串的方法,那多半makeSaveContents生成的就是一個JSON對象。


生成存檔內(nèi)容

????果不其然,makeSaveContents返回的就是一個JSON對象,包含了除$gameTemp,$gameMessage,$gameTroop以外的游戲數(shù)據(jù)。

????可能大家還想知道這些游戲數(shù)據(jù)里面是什么,數(shù)據(jù)較多,我們就在控制臺輸出下$gameActors看下,這個對象里是什么。

$gameAcotors

????$gameActors實際是rpg_object中定義的Game_Actors,而Game_Actors是角色數(shù)組的一個包裝類,簡單的說就是Game_Actors中包含了所有角色的信息。

????從$gameActors我們也能看出一些熟悉的信息,如默認(rèn)角色“霍爾德”,各項狀態(tài)信息(生命值、魔法值、幸運值等)以及裝備信息、技能信息,與角色相關(guān)的信息通過該對象都能體現(xiàn)出來。


????讓我們回到saveGameWithoutRescue方法,既然數(shù)據(jù)已經(jīng)形成,接下來就是進行存儲了。存儲前,還做了數(shù)據(jù)大小的校驗,過大會發(fā)出警告。估計是WEB端,存儲是放在瀏覽器localStorage中的,各個瀏覽器廠商對localStorage的大小都有限制,例如chrome的localStorage最大支持5M,如果超過5M是無法進行存儲的(當(dāng)然方法也有,這里就不展開了)。


????接著往下看,StorageManager.save(savefileId, json)進行了數(shù)據(jù)的存儲。

????

save

????saveToLocalFile、saveToWebStorage分別是存儲至本地文件系統(tǒng)及存儲至瀏覽器的方法。

????

????這里我們簡單看下存儲至本地文件系統(tǒng)的過程:

????

saveToLocalFile

????第二行就解釋了“天書”的形成原因,LZString是JavaScript的一個庫,compressToBase64將字符串壓縮并編碼,形成了我們看不懂的“天書”。接下來就是創(chuàng)建本地目錄,將字符串寫入本地文件中。

????

????

saveToWebStorage

????存儲至瀏覽器的處理過程類似,只是最終將數(shù)據(jù)放在了localStorage。


????以上過程就是RPGMakerMV的存檔過程。

????單機游戲不可或缺的一部分就是SL大法,今天我們大概分析了下S,下回我們捋一捋L。

RPGMakerMV探秘02-存檔的評論 (共 條)

分享到微博請遵守國家法律
石家庄市| 深泽县| 太原市| 安岳县| 桦川县| 寿阳县| 奉节县| 体育| 安达市| 富阳市| 汤原县| 铁岭市| 湘阴县| 龙里县| 饶平县| 琼结县| 喀喇沁旗| 遵义县| 青州市| 大宁县| 蛟河市| 青阳县| 彭水| 伊吾县| 桐柏县| 延吉市| 尤溪县| 永年县| 中阳县| 微山县| 昌吉市| 抚州市| 玛沁县| 翁牛特旗| 朝阳市| 盱眙县| 高阳县| 岗巴县| 淮南市| 廊坊市| 宝鸡市|