我正在寫一個精靈,以恆速運動的身體。因此,它是這樣的時間步長:如何在Box2D中改變方向時更新速度?
const v = body.getLinearVelocity();
v.normalize();
body.setLinearVelocity(v * speed);
然後,我要聽的mouseClicked事件和精靈將相應地移動到新的方向。
這是我在的mouseClicked事件處理程序正在做的:
const point = /* new Point on screen */
const rotation = Math.atan2(point.y - player.y, point.x - player.x);
body.setTransform(body.getPosition(), rotation);
但是當我點擊鼠標我的精靈不會轉向新的方向,它在相同的恆定速度進入到舊方向。我可以看到身體的角度在每個步驟都會改變。它只是不會去新的方向。
如何在Box2D中打開我的精靈並將其移向新的方向?
對不起,我仍然不明白你的意思是「束」到新的變換。我明白,當我希望它逐漸移動到一個速度時,最好使用'applyForce()'/'applyImpulse()',但我只是希望它以恆定的速度移動,開始並永遠不停止或開始。我的問題是如何在保持原有速度的同時向新的方向發展。 – newguy
也許不是說「梁」,而應該說「傳送」。 'body.setTransform'就像拿起身體並將其放置在新的位置。 –