簡體   English   中英

通過applyLinearImpulse box2d提高身體速度

[英]Increase body speed with applyLinearImpulse box2d

我試圖使身體以增加的速度運動。 起初它開始加速,但不久后達到恆定速度。 我如何使其保持加速度?

我的代碼如下所示:

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

為了使Body加速隨着時間的推移,usualy applyForce使用, applyLinearImpulse用於即時速度的變化來代替。
applyForce ,只要要加速,就必須調用applyForce ,而脈沖通常只應用一次。
想想一輛起步的汽車:車輪的旋轉,加上摩擦力,會給整輛汽車增加一個力,使之加速。
如果汽車隨后達到了一定的速度並撞上了箱子,那么就會對箱子施加一次脈沖,從而幾乎立即提高速度。
因此,您可以嘗試將applyLinearImpulse調用更改為applyForce ,並確保只要您按給定的鍵,它就會在每個update周期被調用。

我建議您閱讀iforce2d.net上Box2D教程

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM