Guten Tag!
Ich experimentiere gerade mit C++ und SDL2 herum.
Mein Ziel ist es ein Raumschiff im 2D Raum zu bewegen.
Mit den Pfeiltasten <-- und --> wird der Winkel verändert.
Mit den Pfeiltaste hoch bzw. runter wird die Geschwindigkeit verändert.
X und Y Position des Raumschiffs sind Integer Werte (Nichtkomma Zahlen).
Mein bisheriger Ansatz ist vereinfacht geschrieben folgender:
float fWinkel = 22.0f;
int Raumschiff.x = 500;
int Raumschiff.y = 500;
while()
{
Raumschiff.x += cos(fWinkel) * 10.0f;
Raumschiff.y += sin(fWinkel) * 10.0f;
}
Was nicht funktioniert !
Ich überlege halt womit ich x und y addieren bzw. subtrahieren muss damit sich
das 2D-Objekt im entsprechendem Winkel bewegt.
Raumschiff.x und Raumschiff.y ergeben ja den Punkt P(500|500).
Und den Winkel a von 22.0° habe ich ja auch.
Und wenn man bedenkt das dass Objekt nur bis kurz hinter den Bildschirmrand fliegt
dann habe ich auch eine Seite eines Dreiecks in dem ein Winkel immer 90° ist.
Die Steigung m ist dann doch tan(22) und der andere Wert einer Steigung ist ja immer 1.
Also dachte ich ich z.B. x += 1 und y += tan(22) um das Objekt zu bewegen.
Aber irgendwie funktioniert das alles nicht und daher wollte ich mal hier Fragen ob jemand eine bessere Idee hat die ich nachvollziehen kann.
Mit freundlichen Grüßen
_Andi