Ich mache ein 2D-Spiel in Libgdx und das Spieler Bewegungssystem ist ziemlich einfach:Wie verschiebt man einen Spieler in einer festen Richtung trotz Kameradrehung in LibGDX?
if (Gdx.input.isKeyPressed(Input.Keys.W))
player.setPosition(player.getPosition().x, player.getPosition().y + 100 * delta);
Und das gleiche Prinzip für die A, S und D-Taste.
Aber jetzt habe ich einen „betrunkenen Modus“ - daher gibt es eine Kamerarotation in der Welt, so einfach:
camera.rotate(MathUtils.random(-50, 50) * delta);
Aber wenn ich die W-Taste drücken, wenn die Kamera dreht, wird der Spieler bewegt sich nicht mehr gerade nach oben. Wenn die Drehung z.B. 180 ° bewegt sich der Spieler gerade nach unten, was eigentlich ziemlich logisch ist.
So gibt es einen Weg, dass der Spieler immer bewegt, nach oben, wenn W gedrückt wird, nach rechts, wenn D gedrückt wird etc. egal, was ist die aktuelle Rotation?
Vielen Dank im Voraus
Verwenden Sie einen Vektor (in Ihrem Fall wäre das [0, 100] und drehen Sie ihn in die entgegengesetzte Richtung, dann bewegen Sie den Player um diesen Vektor – 5tingr4y