【发布时间】:2021-09-05 20:08:23
【问题描述】:
所以我正在制作一个玩家使用 WASD 键移动的自上而下的游戏。为此,我使用
if (Gdx.input.isKeyPressed(Input.Keys.S) && b2dBody.getLinearVelocity().y >= -0.8) {
b2dBody.applyLinearImpulse(new Vector2(0, -PLAYER_SPEED), b2dBody.getWorldCenter(), true);
} else if (Gdx.input.isKeyPressed(Input.Keys.W) && b2dBody.getLinearVelocity().y <= 0.8) {
b2dBody.applyLinearImpulse(new Vector2(0f, PLAYER_SPEED), b2dBody.getWorldCenter(), true);
} else if (Gdx.input.isKeyPressed(Input.Keys.A) && b2dBody.getLinearVelocity().x >= -0.8) {
b2dBody.applyLinearImpulse(new Vector2(-PLAYER_SPEED, 0), b2dBody.getWorldCenter(), true);
} else if (Gdx.input.isKeyPressed(Input.Keys.D) && b2dBody.getLinearVelocity().x <= 0.8) {
b2dBody.applyLinearImpulse(new Vector2(PLAYER_SPEED, 0), b2dBody.getWorldCenter(), true);
}
但是因为重力设置为 0 world = new World(new Vector2(0, 0), true);,所以身体不会停止。我想知道是否有办法保持重力不变,同时让身体在一段时间后停止?提前致谢。
【问题讨论】:
-
我学到的一些术语:在游戏中,“运动学”身体意味着可以移动的东西,但不是物理对象。示例包括玩家头像和简单的移动平台。所以我认为你想使用运动体,而不是对物理体施加力。我不是 libGDX 方面的专家,所以请谨慎对待。