LibGDX:立即移动然后停止box2d

时间:2017-11-14 21:26:06

标签: java libgdx box2d game-physics

我正在开发LibGDX中的一个项目。 这是一款2D平台游戏。你可以说它就像超级马里奥。

所以这就是我将玩家向右移动的方式:

if (Gdx.input.isKeyPressed(Input.Keys.RIGHT))
    player.b2body.applyLinearImpulse(new Vector2(0.1f, 0), player.b2body.getWorldCenter(), true);
}

当我离开钥匙时,玩家仍在移动一下。 (我认为它的身体仍然有“线性冲动”力量。)

如何让它停止?

我的问题很简单: 在按住键的同时,在一个方向上移动LibGDX上的物理体的最佳方法是什么。当我离开钥匙时,玩家立即停止。

bdw - 我已尝试使用“setTransform”,当身体接触到其他物体时它会出现问题 - 加上sahpe“在”屏幕前的其余部分之前出现(你可以看到它)在调试上)

感谢。

1 个答案:

答案 0 :(得分:2)

你的方法没问题。我还建议设置你身体的最大速度:

if (Gdx.input.isKeyPressed(Input.Keys.RIGHT) && player.b2body.getLinearVelocity().x < maxSpeed)
    player.b2body.applyLinearImpulse(new Vector2(0.1f, 0), player.b2body.getWorldCenter(), true);
}

使用setLinearVelocity方法立即停止身体。

player.b2body.setLinearVelocity(0f, 0f);