有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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


共 (1) 个答案

  1. # 1 楼答案

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

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