美麗的秋日來臨,礦工們快點放下手上的稿子,為自己欣賞的文章投票吧!
LV. 10
GP 0

【心得】死亡之視 — Minecraft實作生物raycasting與論scoreboard的潛在利用

樓主 古狐 Kishibe3
GP10 BP-
在Minecraft中有一組能讓我們自由操作、運算及判斷數據的指令:execute、data、scoreboard。活用這三個指令就能在Minecraft中進行類程式設計(完全不需要模組與插件)。

要在Minecraft中進行運算會需要用scoreboard players operation指令,而運算需要的數據通常會從實體與方塊取得(execute store result score、data get),至於記分板運算後的結果可以直接存入實體與方塊(execute store result entity/block)或拿來進行判斷(execute if/unless)。三個指令讓Minecraft的自由度更加進化,讓人能自由實現各種可能炫酷的指令。

死亡之視就是活用這組指令做出的,它讓玩家只要一注視生物的眼睛就能直接殺掉生物(被看到眼睛的生物就會死)。當然也有例外,那些是我私心保護的,請各位好好疼愛保護
藉由計算向量外積與內積,我們就能知道玩家視線前方的生物,實作簡易的Raycasting。在判斷是否為0的部分用到了計算幾何常用的誤差判定(取一足夠小的正數,當絕對值小於此值時判定為0)。
(要這個指令包的話請去Youtube)
再次強調,請不要殺狐狸,我最喜歡他們了。請不要做殘忍的事情!
同樣的方法也能應用在追跡之箭,射出的箭矢能追蹤鎖定的對象並調整自己的姿勢與速度。
歐不,放錯了。鬼鬼做的才不是那種追跡之箭。比較相似的應該是暮光森林模組中的追蹤弓,雖然我沒玩過。

總而言之,原本模組或插件才能實現的部分功能夠用指令替代了,就是這樣。不過這其實是個鑽縫隙的用法,scoreboard本來就不是給人這樣用的,所以你可以發現通常會需要一些變數暫存目前的結果,某些運算無法像真正的程式語言直接一行就能寫好,而是要分成很多段最後才組合出來,這也是目前的不便。

話雖如此,能在Minecraft中引入各種演算法本身就能迸出不少新點子與新應用,也讓地圖製作者們更加地興奮!
------------------------------------------------------------------------------------------------------------------------------------
嗨!大家好,很高興各位看到這裡,我真心期望能和各位蕉流指令與技術。
不知道各位有沒有點擊剛剛暮光森林追蹤弓的連結,它程式碼關於調整彈道的演算法我完全看不懂,不知道各位大大對這段程式碼有什麼理解?
10
-
未登入的勇者,要加入 2 樓的討論嗎?
板務人員:

1326 筆精華,10/16 更新
一個月內新增 11
歡迎加入共同維護。


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】