Ceiling Hover/zh: Difference between revisions

From Minecraft Parkour Wiki
Content added Content deleted
(Created page with "天花板悬停是一个小故障,它使玩家在天花板和有弹性的方块(史莱姆,或自 1.12 起的床)之间“悬停”。 它可以通过跳到天花板下...")
No edit summary
Line 15: Line 15:
每当玩家与一个方块(地板或天花板)垂直碰撞时,游戏将应用碰撞物理。
每当玩家与一个方块(地板或天花板)垂直碰撞时,游戏将应用碰撞物理。


几乎每个方块,这只是意味着将玩家的垂直速度设 0。
对几乎每个方块来说,这意味着垂直速度设为0。


<syntaxhighlight lang="java">
<syntaxhighlight lang="java">

Revision as of 11:48, 26 August 2021

Other languages:
在 1.8 中,這是唯一可用於執行天懸停的設置 (1.8125bc 下面有史萊姆)

天花板懸停是一個小故障,它使玩家在天花板和有彈性的方塊(史萊姆,或自 1.12 起的床)之間「懸停」。 它可以通過跳到天花板下來執行,使得天花板下方的塊 2.001b 具有彈跳特性。




解釋

每當玩家與一個方塊(地板或天花板)垂直碰撞時,遊戲將應用碰撞物理。

對幾乎每一個方塊來說,這就意味着把垂直速度設為0。

/* in class Block */
public void onVerticalCollision(Entity entityIn)
{
    entityIn.motionY = 0.0D;
}


但有一個例外:粘液塊(和 1.12+ 中的床)。

/* in class 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. 在1.8125bc下跳躍會與玩家下方0.2米的方塊發生垂直碰撞(在地面)
  2. 如果方塊是黏液方塊,那麼垂直速度不會設置為0,玩家仍然懸掛在天花板下。
  3. 重複步驟(2),直到玩家的垂直速度由於重力而變為負值。


注意:這個小故障只會發生幾Ticks,但是通過跳躍提升,持續的時間會更長。天花板懸停可以隨時通過潛行中斷。



結果

這個故障非常微不足道:它不會以任何方式破壞遊戲,並且需要使用非常具體的設置