¿Averiguar en qué dirección mi object se enfrenta en un plano 2D?

Mi amigo y yo estábamos jugando en XNA 4.0 haciendo un juego de carreras en 2D. Algo así como este: Ivan "Ironman" Stewart's Super Off Road. El problema que tenemos es saber en qué dirección se encuentra el automobile para moverlo adecuadamente. Podríamos seguir la dirección por un valor enum Norte, Sur, Este, Oeste, pero no queremos hacer eso por una serie de razones.

Nos preguntábamos si había una manera de lograr esto a través de las matemáticas. Tal vez al designar un punto de anclaje en el capó del automobile y hacer que el automobile siempre se mueva hacia ese punto y luego mover ese punto de anclaje. No estamos seguros O tal vez hay una forma de usar un Vector 2D.

Pensé que desde que llegamos a un punto difícil, deberíamos pedir ayuda a la comunidad de encoding.

Solo para aclarar. No estoy buscando código; Solo quiero discutir algunos conceptos del movimiento 2D en todas las direcciones sin tener que rastrear una dirección enum. Sé que no puede ser la única forma de hacerlo.

Vector:

Los vectores describen la magnitud y la dirección. Si solo quieres la dirección, simplemente la normalizas . Esto hace que el vector se contraiga para encajar en el círculo unitario. Lo que significa que tiene magnitud / longitud de 1.

Desde angularjs de rotation:

Para get los componentes xey para su dirección:

//(pi/180) - > degrees to radians. (180/pi) - > radians to degrees x = cos(angle*(pi/180)); y = sin(angle*(pi/180)); 

Esto es similar a un vector después de ser normalizado.

Usted simplemente multiplica estos valores / vectores para cambiar su velocidad (o lo que sea que requiera la dirección) con una velocidad. De modo que los componentes xey se extienden a la longitud correcta respectivamente.