優(yōu)質的開發(fā)資訊交流平臺,能夠幫助各位開發(fā)者們更好地汲取開發(fā)相關知識,進而用于實踐。開發(fā)大師實戰(zhàn)班通過為各階段開發(fā)者提供有針對性的技術培訓,解決了多個不同方面的開發(fā)難題,也拓展了開發(fā)者間的交流渠道,幫助開發(fā)者們更高效地投入到深層次開發(fā)創(chuàng)造之中。
上一期開發(fā)大師實戰(zhàn)班的重難點筆記解答了自定義相關的問題,大家有認真學習嗎?本期開發(fā)大師實戰(zhàn)班將帶來關于MOD SDK使用中的答疑解惑,主要涉及UI及其他相關問題的補充,開發(fā)者們快召集伙伴,一起來學習吧。
【MOD SDK答疑解惑】
Q:想實現(xiàn)長按釋放技能的效果,但是這個接口不會用,能講講嗎?
A:這個接口是這樣的,原版長按按鈕觸發(fā)的效果有:與生物交互、右鍵使用物品、破壞方塊等。所以這個接口設置的是這些原版操作的時間。如果你現(xiàn)在是要長按自己某個按鈕釋放技能的話,那就是按下按鈕時記個時間差,然后ui都有個Update的多態(tài),繼承之后在里面比較下時間差,比如超過設定上的1秒,2秒就執(zhí)行一次技能,然后按鈕彈起時把那個時間差去掉。ui也有個update刷新函數(shù),因為這個長按接口,跟自定義按鈕關系不大,這個是長按屏幕多久觸發(fā)mc原版的長按操作。
Q:如果沒寫UI按鈕,可以不用UI做長按釋放技能嗎?
A:可以的??梢栽谕婕沂殖帜硞€道具時長按設置比如3秒,那么長按屏幕會觸發(fā)道具的tryuseevent,然后在事件里做你想要的技能,再在玩家切換到其他物品時重置這個時間。
Q:UI上的TouchEventHandler,按住時是不是也是一直每秒30次觸發(fā)對應的touch事件?
A:按住的話只會觸發(fā)一次touchdown事件,彈起時觸發(fā)一次touchup事件。
Q:變量域如何達到以裝備件數(shù)來給予藥水效果?
A:如下圖所示:
Q:Fog的顏色RGBA值怎么寫?
A:將RGBA值/255后填入 fog.SetFogColor((R, G, B, A))即可。
如下圖所示:
Q:time組件的計時問題怎么算?
A:一天的時間為24000。
Q:指南書如何制作?
A:如下圖所示:
Q:請問有方法防止組件中存儲到世界的數(shù)據不被別的組件干擾或者刪除嗎?
A:因為目前組件出現(xiàn)過“別人的組件一加載就初始化世界數(shù)據”這種情況,這導致我們組件的玩家使用很久存儲了很多資源數(shù)據在世界中,同時加載就會出現(xiàn)玩家資源數(shù)據丟失的情況。首先,extraData應該還是有個能夠儲存數(shù)據量的上限。個人認為,每個鍵對應的數(shù)據量有一個上限。其次,注意自己的key不要跟別人的重復。如果是方塊數(shù)據的話,之后可以保存到自定義方塊實體上。
Q:這個接口是無效的嗎?
SetPlayerMaxExhaustionValue
comp = serverApi.CreateComponent(player_id, "Minecraft", "player")
comp.SetPlayerMaxExhaustionValue(0.1)
A:該接口本來是調整玩家饑餓度消耗速度的,接口說明上寫的是“值越大速度越慢”。
而我們這邊調整讓他低于默認值并沒有變化??梢詤⒖紈iki上面的飽和度詞條。
因為飽和度計算起來很麻煩,wiki饑餓鏈接:https://minecraft-zh.gamepedia.com/%E9%A5%A5%E9%A5%BF
我們按照wiki上的食物飽和度詞條,已經將飽和度設置為0了。但是饑餓條沒有抖動,也沒有掉飽和度。這個接口看起來是原版有一個消耗度,當觸發(fā)了你設置的這個MaxExhaustionValue后,會歸零且饑餓度減少1。如果這幾個消耗很慢的話,就嘗試設置默認最大值為4,然后print返回結果驗證是否設置成功。
Q:結構載入時,有方法保證一定在水面之上么?
A:有的。Y用三元運算符,使其必須取到62格以上的位置,否則會放置在0格。
Q:可以主動讓區(qū)塊加載嗎?
A:因為手動放置結構的話也會遇到區(qū)塊未加載、放置失敗的問題。這里的最小最大坐標設置、key作用不明。
可以嘗試用(SetAddArea)這個接口。如果要設置一個區(qū)塊的加載區(qū)域,就需要給一個最小坐標和最大坐標。可以理解為一個方盒子,在這個區(qū)域內嘗試放置。key就是一個身份證明,之后要回收掉這個常加載區(qū)域的話,要用key來回收。建議直接用原版指令設置常加載區(qū)塊。如圖所示:
Q:獲取指定范圍內的實體列表如何在代碼層實現(xiàn)?
A:(除開SetCommand組件的方式)兩種方法:一種是獲取存檔所有實體(不包括玩家);另一種是獲取正方體范圍內實體(包括玩家)。這個在組建文檔里都有的,建議用GetEntitiesAround接口中的filters參數(shù)。
Q:GetComponent可以獲取到JSON里定義的部分嗎?
A:建議用attrComp試試。例如下圖所示:
Q:請問下述情況原因是什么?
如下代碼,路徑一切正常,注釋掉第七行的話,第八行也會報錯furnaceManagerFactory.py這個文件找不到很奇怪。
A:有可能是把init.py文件刪掉了,或是把furnaceManagerFactory文件刪掉了,又或者是添加了其他內容進來。可能某個module里面,有東西弄錯了。建議再看看有沒有哪里格式錯了等等。檢查下文件里有個縮進是真tab,而不是四個空格。如果是四個空格,python文件直接就不認了。
Q:請問這個寫法有什么問題嗎?
A:可以用"!="。is not是地址比較,字典的類型里的str的儲存方式和普通str不太一樣。
以上問題的解答都來自開發(fā)大師實戰(zhàn)班導師Spcoo和境界,大家看完有沒有將心中的疑問解開呢?關于實戰(zhàn)班還有更多精彩內容,歡迎關注開發(fā)者公眾號:我的世界Minecraft開發(fā)者 進一步了解!《我的世界》將與你一同成長,探索無限的創(chuàng)造可能。
關于《我的世界》
網易游戲代理的《我的世界》(Minecraft)是一個關于方塊與冒險的游戲,玩家可以獨自一人或與朋友們一起自由冒險,探索隨機生成的世界,創(chuàng)造令人驚嘆的奇跡。無論是建造簡單質樸的小屋,還是拔天倚地的城堡,盡可自由發(fā)揮你無窮的想象力。
《我的世界》官方網站:https://mc.163.com/
《我的世界》官方微信:我的世界Minecraft
《我的世界》官方微博:我的世界Minecraft
《我的世界》官方論壇:https://mc.netease.com/
《我的世界》官方客服電話:PC版 95163815;手游 95163816
《我的世界》官方玩家交流QQ群:677602705
《我的世界》創(chuàng)造者反饋郵箱:minecraftstarter@163.com
《我的世界》開學季專題,帶你開啟新的冒險旅程[03-05]
《我的世界》冒險玩法《三國·赤壁》,大神攻略流程篇(下)[03-03]
《我的世界》x 優(yōu)衣庫聯(lián)動開啟,合作款UT與限定皮膚即將上線![03-02]
《我的世界》冒險玩法《三國·赤壁》,大神攻略流程篇(上)[02-26]
華南理工大學來到《我的世界》,南沙水鳥世界組件驚喜上線[02-24]
回到“媽媽”的年代,《我的世界》X《你好,李煥英》聯(lián)動玩法正式開啟[02-08]
春節(jié)大聯(lián)歡,《我的世界》三大服務器新春活動陪你過大年[02-08]
炫酷新世界,《我的世界》無限法則上線[02-08]
《我的世界》X《熊出沒·狂野大陸》,動物冒險新玩法今日上線[02-07]
《我的世界》驚喜限定,春節(jié)紅包封面上線啦![02-07]
相關評論