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



我正在用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,播放器开始旋转。我该怎么做才能以正确的方式将脉冲应用于玩家?我希望玩家表现得像火箭或"喷气背包"

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

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

最新更新