Slime Block/zh: Difference between revisions

From Minecraft Parkour Wiki
Content added Content deleted
No edit summary
No edit summary
 
(3 intermediate revisions by the same user not shown)
Line 3: Line 3:




<span id="Friction"></span>
== 滑度 ==
== 滑度 ==


Line 11: Line 12:




<span id="Slime_Bounce"></span>
== 粘液块反弹 ==
== 粘液块反弹 ==


* 一般情况下实体掉落在粘液块上会改变垂直速度方向,使其向上反弹。
* 一般情况下实体掉落在粘液块上会反转垂直速度,使其向上反弹。
* 落地时按住跳跃将取消,玩家会在没有跌落伤害的情况下正常跳跃。
* 落地时按住跳跃不会反弹,玩家会在没有跌落伤害的情况下正常跳跃。
* 落地时按住下蹲会取消,但是玩家会受到摔落伤害。
* 落地时按住下蹲弹,但是玩家会受到摔落伤害。






<span id="Code"></span>
== 代码 ==
== 代码 ==


<syntaxhighlight lang="java">
<syntaxhighlight lang="java">
//在 Entity.moveEntity() 结束调用
//在 Entity.moveEntity() 结束调用
public void onLanded(Entity e)
public void onLanded(Entity e)
{
{
Line 32: Line 35:
}
}


//called at the end of Entity.moveEntity(), after the previous method
// Entity.moveEntity() 结束时,上一个方法之后调用
public void onEntityCollidedWithBlock(Entity e)
public void onEntityCollidedWithBlock(Entity e)
{
{

Latest revision as of 05:05, 16 August 2023

Other languages:

粘液块是一种特殊的方块,拥有实体落上它时反弹的特性。


滑度

粘液块的滑度是0.8,介于普通方块 (0.6) 和冰 (0.98) 之间。

除此之外,


粘液块反弹

  • 一般情况下实体掉落在粘液块上会反转垂直速度,使其向上反弹。
  • 落地时按住跳跃不会反弹,玩家会在没有跌落伤害的情况下正常跳跃。
  • 落地时按住下蹲不会反弹,但是玩家会受到摔落伤害。


代码

//在 Entity.moveEntity() 结束时调用
public void onLanded(Entity e)
{
    if (e.isSneaking())
        e.motionY = 0.0;

    else if (e.motionY < 0.0D)
        e.motionY = -e.motionY;
}

//在 Entity.moveEntity() 结束时,上一个方法之后调用
public void onEntityCollidedWithBlock(Entity e)
{
    if (Math.abs(e.motionY) < 0.1D && !e.isSneaking())
    {
        double mult = 0.4 + Math.abs(e.motionY)*0.2;
        e.motionX *= mult;
        e.motionZ *= mult;
    }
}