Ceiling Hover/zh: Difference between revisions
Content added Content deleted
No edit summary |
No edit summary |
||
Line 4: | Line 4: | ||
<youtube>bijMuKlme7k</youtube> |
<youtube>bijMuKlme7k</youtube> |
||
天花板悬停是一个能使玩家在天花板和有弹性的方块(史莱姆,或者 1.12 以上的床)之间 |
天花板悬停是一个能使玩家在天花板和有弹性的方块(史莱姆,或者 1.12 以上的床)之间“悬停”的故障。 |
||
跳入天花板且下方 2.001b 的方块具有弹性特性时便可以触发。 |
|||
Line 13: | Line 14: | ||
== 解释 == |
== 解释 == |
||
每当玩家与一个方块(地 |
每当玩家在垂直方向上与一个方块(地面或天花板)垂直碰撞时,游戏将应用碰撞物理。 |
||
对于几乎所有的方块来说,这 |
对于几乎所有的方块来说,这代表将玩家的垂直速度设为 0。 |
||
<syntaxhighlight lang="java"> |
<syntaxhighlight lang="java"> |
||
/* |
/* 在 Block 类中 */ |
||
public void onVerticalCollision(Entity entityIn) |
public void onVerticalCollision(Entity entityIn) |
||
{ |
{ |
||
Line 30: | Line 31: | ||
<syntaxhighlight lang="java"> |
<syntaxhighlight lang="java"> |
||
/* |
/* 在 BlockSlime 类中 */ |
||
public void onVerticalCollision(Entity entityIn) |
public void onVerticalCollision(Entity entityIn) |
||
{ |
{ |
||
Line 41: | Line 42: | ||
* 若玩家在潜行,则会被视为常规碰撞(垂直 |
* 若玩家在潜行,则会被视为常规碰撞(垂直速度被设为 0) |
||
* 否则 |
* 否则程序会检查玩家的速度是否为负,然后将其反转。 |
||
需要注意,如果玩家以某种方式以正速度移动(且没有潜行),则什么都不会发生。 |
|||
实际上, |
实际上,正是这一点触发了这个小故障。 |
||
当游戏检测到垂直碰撞时,它会考虑在玩家位置下 0.2 米的方块应用碰撞物理( |
当游戏检测到垂直碰撞时,它会考虑在玩家位置下 0.2 米的方块上应用碰撞物理(甚至碰到天花板也会如此……) |
||
Revision as of 12:35, 28 January 2022
![](http://static.miraheze.org/mcpkwiki/thumb/4/49/Slime_Hover_Setup.png/300px-Slime_Hover_Setup.png)
天花板懸停是一個能使玩家在天花板和有彈性的方塊(史萊姆,或者 1.12 以上的床)之間「懸停」的故障。 跳入天花板且下方 2.001b 的方塊具有彈性特性時便可以觸發。
解釋
每當玩家在垂直方向上與一個方塊(地面或天花板)垂直碰撞時,遊戲將應用碰撞物理。
對於幾乎所有的方塊來說,這代表將玩家的垂直速度設為 0。
/* 在 Block 类中 */
public void onVerticalCollision(Entity entityIn)
{
entityIn.motionY = 0.0D;
}
但有一個例外:粘液塊(和 1.12+ 中的床)。
/* 在 BlockSlime 类中 */
public void onVerticalCollision(Entity entityIn)
{
if (entityIn.isSneaking())
super.onVerticalCollision(entityIn);
else if (entityIn.motionY < 0.0D)
entityIn.motionY = -entityIn.motionY;
}
- 若玩家在潛行,則會被視為常規碰撞(垂直速度被設為 0)
- 否則程序會檢查玩家的速度是否為負,然後將其反轉。
需要注意,如果玩家以某種方式以正速度移動(且沒有潛行),則什麼都不會發生。
實際上,正是這一點觸發了這個小故障。
當遊戲檢測到垂直碰撞時,它會考慮在玩家位置下 0.2 米的方塊上應用碰撞物理(甚至碰到天花板也會如此……)
讓我們回顧一下 1.8125bc 天花板懸停設置的步驟:
- 在 1.8125bc 下跳躍會與玩家下方 0.2 米的方塊發生垂直碰撞(在地面)
- 如果下方方塊是黏液塊,那麼垂直速度不會設置為 0,玩家仍然懸停在天花板下。
- 重複步驟(2),直到玩家的垂直速度由於重力而變為負值。
注意:這個小故障只會發生幾 Ticks,但是通過跳躍提升,持續的時間會更長。天花板懸停可以隨時通過潛行中斷。
結論
這個故障非常微不足道:它不會以任何方式破壞遊戲,並且需要使用非常精準的設置