LibGDX:移动然后立即停止box2d



我正在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出现在屏幕中游戏其余部分之前(你可以在调试中看到它)

谢谢。

你的方法还可以。我还建议设置你身体的最大速度:

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);

最新更新