Minecraft實(shí)體運(yùn)動(dòng)相關(guān)研究與應(yīng)用
實(shí)體運(yùn)動(dòng)看起來(lái)很簡(jiǎn)單,但是真正了解其具體機(jī)制的并不多。就連wiki上對(duì)實(shí)體運(yùn)動(dòng)的專(zhuān)門(mén)論述也只有一點(diǎn),不嚴(yán)謹(jǐn)甚至還不完全正確,就比如玩家的阻力數(shù)據(jù)只在Y軸上較為準(zhǔn)確,其他軸則有很大差距。另外,爆炸、活塞推動(dòng)等加速方式的具體數(shù)據(jù)和實(shí)體移動(dòng)過(guò)程細(xì)節(jié)并不普及,網(wǎng)上部分實(shí)體運(yùn)動(dòng)公式定義不清晰,對(duì)實(shí)體運(yùn)動(dòng)理論的系統(tǒng)論述缺失,這就是我寫(xiě)這篇報(bào)告的原因。
本文假定大家已經(jīng)對(duì)下列內(nèi)容有一定認(rèn)識(shí):
Minecraft的基礎(chǔ)游戲機(jī)制,如怪物會(huì)掉落物品,活塞會(huì)推動(dòng)實(shí)體等。
Minecraft中一些基礎(chǔ)名詞,如玩家、方塊、實(shí)體、生物、粘液塊、維度和爆炸等。
Minecraft中一些專(zhuān)業(yè)概念,如區(qū)塊、游戲刻、服務(wù)端和坐標(biāo)等。
高中必修階段及以前的數(shù)學(xué)概念。
高中必修階段及以前的物理概念。
最好有一定Java或類(lèi)似的編程語(yǔ)言基礎(chǔ),但并非必須。
文章內(nèi)容大概如下安排:
第二節(jié)給出一些基本概念,是閱讀下文的基礎(chǔ)
第三節(jié)給出用于描述實(shí)體在理想運(yùn)動(dòng)狀態(tài)(只受固定加速度和阻力系數(shù)阻力作用)下的運(yùn)動(dòng)情況的一些常用公式及其應(yīng)用(包括刻數(shù)的判定,以及三個(gè)以上運(yùn)算階段的實(shí)體的處理方法等內(nèi)容),強(qiáng)烈建議看完
第四節(jié)描述了Minecraft中存在的兩大實(shí)體移動(dòng)(就是坐標(biāo)和碰撞箱移動(dòng)的過(guò)程)方式,個(gè)人認(rèn)為可以區(qū)分就行
第五節(jié)說(shuō)明了一些外部因素對(duì)實(shí)體的運(yùn)動(dòng)的影響,大家可以按需閱讀或作為一個(gè)參考來(lái)用
第六節(jié)說(shuō)明了LivingEntity(玩家生物盔甲架)的運(yùn)動(dòng)機(jī)制,說(shuō)明了AI控制速度的基本原理,介紹了狀態(tài)效果等因素對(duì)運(yùn)動(dòng)的影響,最后簡(jiǎn)要說(shuō)明了鞘翅飛行機(jī)制
第七節(jié)從創(chuàng)建、運(yùn)算和影響三方面介紹了十類(lèi)常見(jiàn)實(shí)體的運(yùn)動(dòng)特點(diǎn),也是一個(gè)參考。
第八節(jié)向大家展示了實(shí)體運(yùn)動(dòng)的一些實(shí)際應(yīng)用,可以按需閱讀。
由于專(zhuān)欄篇幅限制,這里無(wú)法完整地發(fā)布本文,只能給出目錄。
文章及配套存檔下載地址:https://wwz.lanzoui.com/b02iez40j,密碼5a3e
文中提到的臨時(shí)編寫(xiě)的輔助Mod可在我的Github主頁(yè)http://github.com/lovexyn0827下載。
目前本文在https://github.com/lovexyn0827/Discovering-Minecraft進(jìn)行維護(hù)。
11月13日之前下載過(guò)文章的如有需要建議重新下載一份,原來(lái)的文章中存在大量錯(cuò)誤,目前其中絕大部分已經(jīng)修正。如果還有未發(fā)現(xiàn)的錯(cuò)誤歡迎反饋。
由于編輯次數(shù)限制,以后非必要不再修改專(zhuān)欄內(nèi)容.。但是,目前MCBBS的修改似乎不受限,所以可以在MCBBS上對(duì)應(yīng)的帖子上(https://www.mcbbs.net/thread-1230065-1-1.html)查看最新內(nèi)容。
目錄
1???? 緒論
????1.1???????? 研究背景與意義
????1.2???????? 本文主要研究思路
????1.3???????? 本文所需知識(shí)基礎(chǔ)
????1.4???????? 內(nèi)容概要
????1.5???????? 一些特殊約定
2???? 實(shí)體運(yùn)動(dòng)基礎(chǔ)
????2.1???????? 實(shí)體運(yùn)動(dòng)基本屬性及設(shè)定
????2.2???????? 實(shí)體運(yùn)算位置及實(shí)體間運(yùn)算順序
????2.3???????? Minecraft實(shí)體分類(lèi)
????2.4???????? Entity類(lèi)定義的實(shí)體模型
????2.5???????? 誤差和一個(gè)重要Bug
3???? 實(shí)體自由運(yùn)動(dòng)相關(guān)公式推導(dǎo)
????3.1???????? 符號(hào)定義及公式推導(dǎo)
????3.2???????? 公式的直接及拓展應(yīng)用
4???? 實(shí)體移動(dòng)過(guò)程及碰撞機(jī)制
????4.1???????? 基于Entity.move()方法
????4.2???????? 基于raycast的彈射物自主移動(dòng)
????4.3???????? 兩種移動(dòng)過(guò)程的對(duì)比
5???? 外界因素對(duì)運(yùn)動(dòng)的影響
????5.1???????? 蛛網(wǎng)和漿果叢的減速作用
????5.2???????? 粘液塊和床的回彈
????5.3???????? 蜂蜜塊和靈魂沙的減速作用
????5.4???????? 滑度機(jī)制
????5.5???????? 氣泡柱的變速作用
????5.6???????? 其它特殊方塊變速舉例
????5.7???????? 流體的變速作用
????5.8???????? 活塞的推動(dòng)和變速作用
????5.9???????? 潛影盒和潛影貝的推動(dòng)作用
????5.10?????? 實(shí)體擠壓(推動(dòng))
????5.11?????? 騎乘
????5.12?????? 魚(yú)竿浮標(biāo)的拉動(dòng)
????5.13?????? 擊退
????5.14?????? 方塊對(duì)某些實(shí)體的推出作用
????5.15?????? 爆炸的變速作用
????5.16?????? 區(qū)塊行為對(duì)運(yùn)動(dòng)的影響
????5.17?????? TP/折躍門(mén)傳送
????5.18?????? 跨維度運(yùn)動(dòng)
????5.19? ? ? ?拴繩機(jī)制
6???? LivingEntity運(yùn)動(dòng)機(jī)制
????6.1???????? LivingEntity的自由運(yùn)動(dòng)
????6.2???????? AI及屬性對(duì)運(yùn)動(dòng)的影響
????6.3???????? 鞘翅飛行
7???? 幾類(lèi)具體實(shí)體運(yùn)動(dòng)分析
????7.1???????? TNT
????7.2???????? 下落的方塊
????7.3???????? 物品
????7.4???????? 經(jīng)驗(yàn)球
????7.5???????? 船
????7.6???????? 礦車(chē)
????7.7???????? 箭矢
????7.8???????? 雪球
????7.9???????? 惡魂火球
????7.10?????? 玩家
8???? 實(shí)體運(yùn)動(dòng)應(yīng)用舉例
????8.1???????? 改造一種TNT大炮
????8.2???????? 科學(xué)地使用彈射物
????????8.2.1?? 珍珠投擲技術(shù)
????????8.2.2?? 珍珠炮
????????8.2.3?? 殺凋大炮
????8.3???????? 解釋一些奇葩現(xiàn)象
參考文獻(xiàn)
附錄A常見(jiàn)實(shí)體運(yùn)動(dòng)屬性
附錄B完整公式
附錄C輔助性工具
附錄D主要符號(hào)及單位
附錄E 定義索引
致謝
?