使用applyLinearImpulse box2d提高身体速度

时间:2015-04-05 12:09:18

标签: java libgdx box2d physics

我试图让身体以更快的速度移动。起初它开始加速但不久之后达到恒定速度。如何让它保持加速?

我的代码如下所示:

 world = new World(new Vector2(0, 0), true);

    if (Gdx.input.isKeyPressed(Input.Keys.D))
        body.applyLinearImpulse(400f, 0, pos.x, pos.y, true);
    if (Gdx.input.isKeyPressed(Input.Keys.A))
        body.applyLinearImpulse(-400f, 0, pos.x, pos.y, true);
    if (Gdx.input.isKeyPressed(Input.Keys.W))
        body.applyLinearImpulse(0, 400f, pos.x, pos.y, true);
    if (Gdx.input.isKeyPressed(Input.Keys.S))
        body.applyLinearImpulse(0, -400f, pos.x, pos.y, true);

1 个答案:

答案 0 :(得分:0)

要随着时间的推移Body加速,通常会使用applyForceapplyLinearImpulse会立即用于速度更改。
记住,只要你想要加速,你就必须打电话给applyForce,而冲动通常只应用一次。
想想一辆起步车:车轮的旋转与摩擦力相结合,为整辆车增添了力量,加速了它 如果汽车然后有一定的速度并打到一个箱子,那么一次就会对箱子施加一个冲动,几乎立即提高它的速度。
因此,您可以尝试将applyLinearImpulse来电更改为applyForce并确保每update个周期调用一次,只要您按下给定的密钥。

我建议你阅读Box2D tutorials on iforce2d.net