如何将线性脉冲应用于变点

时间:2013-11-04 12:54:26

标签: java android box2d libgdx

我在LibGDX框架中制作简单的Android游戏。我坚持一点,我希望你能帮助我。 我不想在固定点上施加线性脉冲。当按下W时,程序应该检查玩家角度并将冲动施加到正确的点。

player.applyLinearImpulse(new Vector2(0,1000), new Vector2((float)Math.cos(angle)*player.getPosition().x,(float)Math.sin(angle)*player.getPosition().y/2), true);

当我按下时W播放器上升没有任何问题。

但是当我按D并改变球员角度时:

player.applyTorque(2000, true);

如果我再次按W,则播放器开始旋转。如何以正确的方式向玩家应用inpulse?我希望玩家表现得像火箭,或“喷射背包”

1 个答案:

答案 0 :(得分:0)

Body.getWorldVector(...)来检索世界坐标中的局部向量。你可以试试这个:

Vector2 forward = player.getWorldVector(new Vector2(0, 1)).nor();
player.applyForceToCenter(forward.x * strength, forward.y * strength);