Collisions/zh: Difference between revisions
Content added Content deleted
(Created page with "在大多数情况下,所有碰撞现在都类似于 X 面。一些多次旋转的跳跃可能与 1.14 之前的版本大不相同。") |
No edit summary |
||
Line 1: | Line 1: | ||
<languages/> |
<languages/> |
||
Minecraft |
Minecraft的碰撞过程非常简单:游戏中没有光线跟踪碰撞,玩家只是在每一轴上按顺序移动。 |
||
在此提醒,Minecraft的物理更新速度为每秒 20 [[Special:MyLanguage/ticks|ticks]]。玩家的移动和碰撞 |
在此提醒,Minecraft的物理更新速度为每秒 20 [[Special:MyLanguage/ticks|ticks]]。每Tick更新一次玩家的移动和碰撞。 |
||
Line 12: | Line 12: | ||
碰撞通常涉及一个实体和一个方块:方块和方块之间通常不会相互碰撞。 |
碰撞通常涉及一个实体和一个方块:方块和方块之间通常不会相互碰撞。 |
||
* 玩家只有一个边界箱,尺寸为 '''0.6'''×'''1.8'''×'''0.6''' m<sup>3</sup>。 |
* 玩家只有一个边界箱,尺寸为 '''0.6'''×'''1.8'''×'''0.6''' m<sup>3</sup>。其的位置(如F3所示)位于底部中心 |
||
* 方块有更复杂的碰撞箱(见[[Special:MyLanguage/Blocks| |
* 方块有更复杂的碰撞箱(见[[Special:MyLanguage/Blocks|此列表]])。 |
||
Revision as of 08:51, 14 November 2021
Minecraft的碰撞過程非常簡單:遊戲中沒有光線跟蹤碰撞,玩家只是在每一軸上按順序移動。
在此提醒,Minecraft的物理更新速度為每秒 20 ticks。每Tick更新一次玩家的移動和碰撞。
碰撞箱
一個碰撞箱由一個或多個邊界箱組成,邊界箱是由最小和最大 X/Y/Z 坐標定義的簡單長方體。
碰撞通常涉及一個實體和一個方塊:方塊和方塊之間通常不會相互碰撞。
- 玩家只有一個邊界箱,尺寸為 0.6×1.8×0.6 m3。其的位置(如F3所示)位於底部中心
- 方塊有更複雜的碰撞箱(見此列表)。
注意:判定箱'是玩家可以點擊的(例如攻擊實體、按下按鈕、打開門)。它不一定與碰撞框重疊。
碰撞順序
每次更新玩家速度後,遊戲會執行以下步驟來檢查碰撞情況:
- 沿 Y 軸移動玩家。如果在向下移動時檢測到垂直碰撞,則玩家現在被認定在地面上。
- 沿 X 軸移動玩家。
- 沿 Z 軸移動玩家。
- 如果玩家在地面上撞到一堵牆並且牆的高度小於0.6米,他們可以跨過牆。
垂直碰撞(Y)
在水平移動之前處理垂直移動。因此:
- 玩家可以在跑過一個方塊後跳一個滴答。這就是延立的原理。
- 為了降落在方塊上,玩家的邊界箱必須在跳躍的最後時刻與其表面重疊。
當玩家撞到地板或天花板時,他們的垂直速度會重置為 0。
水平碰撞(X/Z)
由於X軸是在Z軸之前處理的,因此旋轉碰撞的行為因方向而異。
這種現象在高速時尤為明顯。
區分「X」旋轉跳和「Z」旋轉跳十分重要:
- X 指的是指向東/西的跳躍。很難避免卡牆,所以玩家不得不離牆更遠起跳。
- Z 指的是指向北/南的跳躍。不容易卡牆,甚至可以貼牆延立。
面向的軸向可以用F3查看。
玩家往往傾向於面向 Z 的旋轉跳更容易,但面向 X 的旋轉跳實際上距離更短:
- 面向z的旋轉跳非常類似於線性跳躍(假設最優移動)。要轉換一個Z軸的旋轉跳,只需將其距離增加1.2,並將其tier增加1。例如,一個三牆相當於一個「4.2+0.25」(不能構建,但這種比較對分析是有用的)
- 面向x的旋轉跳沒有線性等效。與面向z的旋轉跳相比,它們「移動」了1個刻度(牆壁碰撞的開始和結束都提前了1個刻度)。這種轉變會減少動量,但卻會讓它變得更短,因為玩家在跳躍結束時的速度通常比開始時更快。
某些跳躍只有在面向一個軸或另一個軸時才有可能(例如,2bm三牆 僅面向 X 有解)
1.14+
1.14 更新了碰撞物理。碰撞顺序现在取决于玩家的速度:
- 如果玩家的Z速度大於X速度(絕對值),碰撞順序為Y-X-Z。
- 否則,碰撞順序為Y-Z-X。
在大多數情況下,所有碰撞現在都類似於 X 面。一些多次旋轉的跳躍可能與 1.14 之前的版本大不相同。