Collisions/zh: Difference between revisions
Content added Content deleted
(Created page with "玩家往往倾向于面向 Z 的旋转跳更容易,但面向 X 的旋转跳实际上距离更短:") |
(Created page with "*面向z的旋转跳非常类似于线性跳跃(假设最优移动)。要转换一个Z轴的旋转跳,只需将其距离增加1.2,并将其[[Special:MyLanguage/Tiers|tier]...") |
||
Line 51: | Line 51: | ||
== 水平碰撞(X/Z) == |
== 水平碰撞(X/Z) == |
||
由于X轴是在Z轴之前处理的,因此旋转碰撞的行为因方向而异。 |
|||
<div lang="en" dir="ltr" class="mw-content-ltr"> |
|||
Due to the X axis being processed before the Z axis, corner collisions don't behave the same depending on the direction. |
|||
</div> |
|||
这种现象在高速时尤为明显。 |
这种现象在高速时尤为明显。 |
||
Line 59: | Line 57: | ||
[[File:XZ collision.png|frameless|720x720px]] |
[[File:XZ collision.png|frameless|720x720px]] |
||
区分“X”跳和“Z”跳十分重要: |
区分“X”旋转跳和“Z”旋转跳十分重要: |
||
*'''X''' 指的是指向东/西的跳跃。很难避免卡墙,所以玩家不得不离墙更远起跳。 |
|||
<div lang="en" dir="ltr" class="mw-content-ltr"> |
|||
*'''X-facing''' refers to jumps that point towards East/West. The corner is difficult to avoid, and the player may have to start jumping further back than expected. |
|||
</div> |
|||
*'''Z''' 指的是指向北/南的跳跃。不容易卡墙,甚至可以贴墙延立。 |
|||
<div lang="en" dir="ltr" class="mw-content-ltr"> |
|||
*'''Z-facing''' refers to jumps that point towards North/South. The corner is easier to avoid, and in particular it's possible to do a hh-timing from the front. |
|||
</div> |
|||
面向的轴向可以用[[Special:MyLanguage/Debug Screen|F3]]查看。 |
面向的轴向可以用[[Special:MyLanguage/Debug Screen|F3]]查看。 |
||
Line 74: | Line 68: | ||
玩家往往倾向于面向 Z 的旋转跳更容易,但面向 X 的旋转跳实际上距离更短: |
玩家往往倾向于面向 Z 的旋转跳更容易,但面向 X 的旋转跳实际上距离更短: |
||
*面向z的旋转跳非常类似于线性跳跃(假设最优移动)。要转换一个Z轴的旋转跳,只需将其距离增加1.2,并将其[[Special:MyLanguage/Tiers|tier]]增加1。例如,一个三墙相当于一个“4.2+0.25”(不能构建,但这种比较对分析是有用的) |
|||
<div lang="en" dir="ltr" class="mw-content-ltr"> |
|||
*面向x的旋转跳没有线性等效。与面向z的旋转跳相比,它们“移动”了1个刻度(墙壁碰撞的开始和结束都提前了1个刻度)。这种转变会减少动量,但却会让它变得更短,因为玩家在跳跃结束时的速度通常比开始时更快。 |
|||
*Z-facing neos are very similar to linear jumps (assuming optimal movement). To convert a neo, simply add 1.2 to its distance and increase its [[Special:MyLanguage/Tiers|tier]] by one. For example, a triple neo is equivalent to a "4.2+0.25" (which cannot be built, but this sort of comparison is useful for analysis) |
|||
*X-facing neos don't have a linear equivalent. Compared to Z-facing neos, they are "shifted" by 1 tick (wall collision begins and ends 1 tick earlier). This shift reduces the momentum, but makes it more efficient as the player typically has more speed at the end of a jump than at the start. |
|||
</div> |
|||
某些跳跃只有在面向一个轴或另一个轴时才有可能(例如,[https://youtu.be/apWPY4_-Qbg 2bm三墙] 仅面向 X 有解) |
|||
<div lang="en" dir="ltr" class="mw-content-ltr"> |
|||
Some jumps are only possible when facing one axis or the other (for example, a [https://youtu.be/apWPY4_-Qbg 2bm triple neo] is only possible X-facing) |
|||
</div> |
|||
Revision as of 08:46, 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。
In most cases, all collisions now resemble X-facing. Some jumps which involve cutting corners may be very different compared to pre-1.14.