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

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

MDT模組科技樹制作

2022-09-10 12:14 作者:NullPointerErr  | 我要投稿

在MDT中,科技樹使得游戲性、目標性更強,在模組中我們也可以自己手動制作一個科技樹

JSON科技樹

下列是ContentParser的一段內容,用于轉換科技樹,JSON不能單獨寫一個文件創(chuàng)建科技樹

屬性提取

  • 若`research`值為string類:寫一個對象游戲內部名稱或模組的內容的`name`值

  • 否則:為一個對象,內可有`parent` `requirements` `objectives` `root` `name` `requiresUnlock`屬性

還可注意到最后兩個屬性需要`root`值為true,且`root`和`parent`只能兼得一個

屬性解析

  • parent: 同`research`為string類時,值為一個游戲內部名稱或內容文件名

  • requirements: 研究消耗,不填則自動計算

  • objectives: 研究前提需要完成的目標(見后)

  • root: 是否為根節(jié)點

  • name: 當前模組的科技樹名稱

  • requiresUnlock: 是否要先前解鎖(但為true就不會顯示了,或許是我沒找到方法?建議將該值為true的內容的alwaysUnlocked為true)

屬性解釋

  • string: parent, name

  • boolean: root, requiresUnlock

  • ItemStack[]: requirements

  • Seq<Objective>: objectives

JS科技樹

在學習js模組時,可以嘗試模仿游戲源碼的方式進行,下方是E星的部分代碼(mindustry/content/ErekirTechTree.java),標號對應下方序號

查找`nodeRoot`和`node`,得到如下幾些方法(mindustry/content/TechTree.java)

  1. 定義了E星的科技樹根節(jié)點

    name定義了該科技樹的名稱,根節(jié)點內容和并創(chuàng)建了子節(jié)點歸屬(?

  2. 定義了父節(jié)點下的一個子節(jié)點

    content定義了該節(jié)點的內容,以及后續(xù)子節(jié)點的歸屬(?

  3. 定義了帶前置目標的一個子節(jié)點

    objectives定義了研究該節(jié)點的前置目標

  4. 定義了一個沒有孩子的節(jié)點

有關requirements只用加一個物品堆就行了,無需過多講解,就是改變研究消耗

經(jīng)過上述描述,則可以寫成如下的js文件:

挺簡單,是吧?

JSON前置目標

先看源代碼,看看是如何轉換的

  • 首先判斷,若為字符串,則查找是否為某個游戲內容,未找到則報錯

  • 否則:前置目標為研究字符串指代內容(就是生產(chǎn)和研究只會顯示為研究xxx,也可能會誤導一部分玩家)

由于沒有分很細的必要,因此寫在下方代碼段里,并且注意Objective[],代表要在一個列表里

所以還是能寫的

JS前置目標

先看源碼,看看原版的前置目標是怎么寫的

找到如下方法

注意到前面科技樹要求傳的是一個Seq,所以這一堆前置目標應放在一個Seq里,不同前置目標應用逗號(,)隔開。

看向最后一行(core/assest/scripts/global.js),由于沒有直接導入到Objectives里,故使用時需要Objectives前置

后言

首次嘗試在一個教程里用兩種語言進行教學。對于十分細致的屬性教程,大概率是不會更新了的,但若是你想知道,可以來 https://github.com/1565619256/Mindustry-zh_CN-modding-guide 這個是我無聊時候會更新的


MDT模組科技樹制作的評論 (共 條)

分享到微博請遵守國家法律
西宁市| 政和县| 敦煌市| 凉城县| 巩义市| 阿坝县| 军事| 广汉市| 普兰店市| 贵南县| 德惠市| 从江县| 介休市| 青河县| 本溪| 汉川市| 黑龙江省| 乌苏市| 沅陵县| 阿拉善左旗| 平南县| 西乌| 门源| 杂多县| 孙吴县| 沐川县| 会昌县| 汨罗市| 泰宁县| 张家港市| 常宁市| 景泰县| 南漳县| 察雅县| 格尔木市| 突泉县| 长海县| 高邮市| 浮山县| 义马市| 休宁县|