libgdx vector2: Schießen ball in einem Winkel
Bin ich mit Libgdx: ich habe ein sprite, der soll Schießen Sie einen ball, wenn Sie den Bildschirm berühren. Die touchPoint-definieren sollten, die Richtung des Balls. Ich kann nicht herausfinden, wie sich zu drehen und Schießen in die richtige Richtung.
public void update(float deltaTime) {
double angle = Math.toRadians(Math.atan2(position.y, position.x));
position.x = (float)Math.cos(angle) * position.x - (float)Math.sin(angle) * position.y;
position.y = (float)Math.sin(angle) * position.x + (float)Math.cos(angle) * position.y;
}
Den ball nimmt ab, aber schießt in die falsche Richtung. Gibt es eine Möglichkeit mit Vector2.drehen-Funktion statt?
- Sind Sie feuern den ball von einer bekannten position auf der touch-point?
- ja, ich weiß, der Punkt, der schießt aus der touch-point
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde so etwas tun, vorausgesetzt, Sie Schießen den ball von der aktuellen position (oder eine beliebige bekannte position wirklich) in Richtung auf die berührte position:
Vector2
Satz und add.set
Methode setzt die Komponenten an den bereitgestellten Werten (x = providedX
), während dieadd
- Methode fügt die Werte angegeben, um die Komponenten (x += providedX
).shootToward()
Methode. Ich war wahnsinnig zu Lesen, Sachen wie 3dgep.com/3d-math-primer-for-game-programmers-vector-operationsposition.add(Math.sin(velocity.x) * deltaTime, velocity.y * deltaTime);
?