[英]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.