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

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

《Minecraft腳本引擎指南:從入門到抬棺送走》:【第一章】Hello System!

2020-05-21 18:10 作者:乾山瑤  | 我要投稿

大家好,我是你們的兔頭老鴿乾山瑤,我又來啦(`?ω?′)

本指南基礎(chǔ)更新頻率為周更時間有空余的時候可能會一周多更)。

鄙人水平有限,撰寫過程中難免出錯,還望各位不吝斧正,多多包涵。

本章節(jié)所使用的示例源碼評論區(qū)置頂自取。(即便如此,還是希望各位能對照源碼自己手打一遍加深印象=A=)

本章我們將學習如何在行為包中使用腳本引擎并在游戲中輸出Hello World字樣,同時初步了解系統(tǒng)這一對象的使用。

Hello World!

????在本小節(jié)中,我們將實現(xiàn)編程學習中最經(jīng)典的一個例子,在游戲中輸出“Hello World”字樣。

? ? 首先構(gòu)建一個行為包并配置好,接著在行為包根目錄下新建一個名為scripts的文件夾,并在該文件夾下新建clientserver文件夾。

文件結(jié)構(gòu)示例

? ??client文件夾,顧名思義,儲存了在每個獨立玩家客戶端運行的代碼文件。其代碼可用于控制和用戶的交互(UI),監(jiān)聽處理一些客戶端可用事件以及處理一些對特定玩家的操作。

? ??server文件夾則儲存了服務(wù)端的代碼文件。其代碼用以控制數(shù)據(jù)的操作與存儲,也就是方塊數(shù)據(jù)的獲取與處理、組件的獲取與應(yīng)用、實體的生成及處理、以及服務(wù)端可用事件的監(jiān)聽處理等等。

? ?client及server文件夾下皆可儲存任意數(shù)量的js文件或文件夾,在進入加載了該行為包的存檔時會將這兩個文件夾中的所有js文件應(yīng)用至游戲中,這些腳本將同時且獨立在游戲中發(fā)揮效用。

可存放任意數(shù)量文件夾或js文件,所有js文件都會被加載

????接著我們在行為包的manifest.json文件中新增以下紅框中的模塊(module)代碼

在行為包manifest文件中添加腳本模塊配置

????注意該模塊的類型:client_data,該模塊用于告訴游戲:“這個包使用了腳本,進存檔的時候記得把server和client中的所有腳本文件都加載一下”

????接著我們在client文件夾下新建一個js文件,名字無關(guān)緊要,能表達該js文件功能即可,這里我們命名為GuideClientScript,并在其中鍵入以下代碼:

注冊并獲取系統(tǒng)對象,重寫系統(tǒng)初始化回調(diào)函數(shù)

????這里我們在獲取到系統(tǒng)對象后重寫了它的initialize回調(diào)函數(shù),這是系統(tǒng)被注冊后立即執(zhí)行的第一個回調(diào)函數(shù),該函數(shù)將在腳本被加載后立即回調(diào),此時世界和玩家都未加載。

????類似的,系統(tǒng)對象還提供了其他幾種回調(diào)函數(shù):

其余兩種回調(diào)函數(shù)

????接著我們向initialize函數(shù)中鍵入以下代碼:

添加事件監(jiān)聽

????對于sendMessage("Hello World!!!")方法,其實是我們這里自行封裝的一個方法,它大概長這個樣子:

封裝的消息欄輸出消息方法

????完整的代碼如下:

GuideClientScript.js文件中的代碼內(nèi)容

????上面的代碼實現(xiàn)了在玩家進入世界后在消息欄中輸出“Hello World!!!”字樣

????接著我們在游戲中加載該行為包,并添加至某個存檔,注意需開啟實驗玩法腳本才能起作用。

創(chuàng)建存檔時,在游戲設(shè)置中開啟實驗玩法

????進入游戲后即可看到如下消息

效果展示

????進入游戲后的界面是沒有消息提示的,您需打開消息面板才能看到,應(yīng)該是個特性(老bugjump了),將會在【生命周期】中詳述,To Stay Tuned。

????至此,您經(jīng)歷了一個完整的腳本開發(fā)流程并成功使用腳本在游戲中輸出了一行內(nèi)容為:“Hello World!!!”的文本!

????結(jié)束了?其實我們還可以接著搞點新花樣,server文件夾還沒用呢。

????同樣的,我們在server文件夾下新建一個js文件,名稱無特別要求,這里我們命名為GuideServerScript,并在其中鍵入以下代碼:

GuideServerScript.js文件中代碼圖示

? ??大致寫法和client中的代碼類似,這里簡單做了注釋,在游戲中運行效果如下:

每放置一次方塊輸出一次Hello World

? ?? 如果你嘗試將這兩個文件中initialize方法中的內(nèi)容互換,你會發(fā)現(xiàn)他們不起作用了,為什么呢?

????下一章【事件系統(tǒng)】里或許有你要的答案。

你知道嗎

  • 獲取到的system對象是可編輯的,您可以將您的自定義函數(shù)或是變量添加至system對象中,并在別處調(diào)用(當然只能在同一js文件中使用):

system.pick = function(){}

system.pick();


《Minecraft腳本引擎指南:從入門到抬棺送走》:【第一章】Hello System!的評論 (共 條)

分享到微博請遵守國家法律
仙桃市| 华宁县| 利辛县| 辉县市| 盐亭县| 罗山县| 新津县| 乡城县| 开阳县| 晴隆县| 凌云县| 武冈市| 上高县| 鄢陵县| 红河县| 古丈县| 荥阳市| 黄浦区| 信丰县| 文登市| 开鲁县| 抚州市| 贵南县| 潜江市| 炉霍县| 墨玉县| 柳江县| 营口市| 锦屏县| 上饶县| 泰顺县| 扬州市| 乌兰察布市| 伊春市| 丰台区| 社旗县| 伊通| 吉安县| 汾西县| 兴安县| 门头沟区|