国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(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模組科技樹制作的評論 (共 條)

分享到微博請遵守國家法律
苍南县| 丽水市| 铁力市| 车险| 中山市| 玛多县| 浦北县| 将乐县| 洛阳市| 井冈山市| 登封市| 乐平市| 休宁县| 双鸭山市| 敖汉旗| 孟村| 礼泉县| 会昌县| 扬中市| 崇礼县| 东乡| 广元市| 九寨沟县| 海南省| 上高县| 石楼县| 牟定县| 莱西市| 芮城县| 龙胜| 崇阳县| 陈巴尔虎旗| 海林市| 德州市| 威宁| 连州市| 雷波县| 额尔古纳市| 达拉特旗| 崇左市| 页游|