Ich weiß zwar nicht was ein tbObject ist
, aber ich mache das einfach über Vektoren. Das heißt du hast ja eine "Richtung" in die das Auto gerade schaut (als Vektor) und wenn du nun links oder rechts wenden willst addierst du zu diesem Richtungsvektor einen kleineren für den Wendekreis (ich mache das mit einem "Wendefaktor"). Danach schreib ich beide Vektor einfach in die Modelview Matrix:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
|
modelview.setIdentity();
modelview.translate(m_position.x+rotationPoint.x, m_position.y+rotationPoint.y, 0);
modelview.values[0] = m_direction.x;
modelview.values[1] = m_direction.y;
modelview.values[4] = -m_direction.y;
modelview.values[5] = m_direction.x;
modelview.rotate(-90, 0, 0, 1);
modelview.translate(-rotationPoint.x, -rotationPoint.y, 0);
|
Das basiert jetzt zwar auf OpenGL, aber vielleicht kannst du das ja ebenso machen. Meine Matrizen sind column-major und [4] und [5] ist halt der Vektor der 90° zum Richtungsvektor steht.
Also als einfache Zusammenfassung: ein Vektor für die Richtung in die das Auto schaut. Diesen dann beim wenden mit einem Wendevektor addieren, normalisieren und in die Matrix einsetzen. Fertig.
Ich hoffe ich hab mich nicht zu unverständlich ausgedrückt