碰撞

From Minecraft Parkour Wiki
This page is a translated version of the page Collisions and the translation is 100% complete.
Other languages:

Minecraft 的碰撞過程非常簡單:遊戲中沒有光線跟蹤碰撞,玩家只是在每一軸上按順序移動。

在此提醒,Minecraft 的物理更新速度為每秒 20 。每刻更新一次玩家的移動和碰撞。


碰撞箱

一個碰撞箱由一個或多個邊界箱組成,邊界箱是由最小和最大 X/Y/Z 坐標定義的簡單長方體。

碰撞通常涉及一個實體和一個方塊:方塊和方塊之間通常不會相互碰撞。

  • 玩家只有一個邊界箱,尺寸為 0.6×1.8×0.6 m3。其的位置(如F3所示)位於底部中心
  • 方塊有更複雜的碰撞箱(見此列表)。


注意:「判定箱」是玩家可以點擊的(例如攻擊實體、按下按鈕、打開門)。它不一定與碰撞箱重疊。


碰撞順序

每次更新玩家速度後,遊戲將按照下列步驟檢查碰撞:

  • 沿 Y 軸移動玩家。如果在向下移動時檢測到垂直碰撞,則玩家現在被認定在地面上。
  • 沿 X 軸移動玩家。
  • 沿 Z 軸移動玩家。
  • 如果玩家在地面上撞到一堵牆並且牆的高度小於 0.6 米,他們可以跨過牆。


垂直碰撞(Y)

在水平移動之前處理垂直移動。因此:

  • 玩家可以在跑出一個方塊後的 1 刻跳躍。這就是延立的原理。
  • 為了落在方塊上,玩家的邊界箱必須在跳躍的最後 1 刻必須超過方塊。


當玩家撞到地板或天花板時,其垂直速度將會重置為 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 之前的版本大不相同。