XNA 2D-Vektor-Winkel - was ist der richtige Weg, das zu berechnen?
was ist in XNA in 2D ist der standard-Weg Vektor-Winkel arbeiten ?
0 ° zeigt nach rechts, 90 Punkte nach oben, 180 Links, 270 down ?
Was sind die "standard" - Implementierungen von
float VectortoAngle(Vector2 vec)
und
Vector2 AngleToVector(float angle)
so, dass VectortoAngle(AngleToVector(PI)) == PI ?
InformationsquelleAutor Led | 2010-02-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zur Beantwortung Ihrer ersten Frage die 0-Grad-Punkte nach oben, 90 Grad Punkte rechts, 180 Grad nach unten zeigt, und 270 Grad Punkte übrig. Hier ist ein einfaches 2D XNA-rotation-tutorial, um Ihnen mehr Informationen geben.
Als für die Umwandlung von Vektoren, Winkel und wieder zurück, fand ich ein paar gute Implementierungen hier:
Auch, wenn Sie das neue 2D-Programmierung, die Sie möchten möglicherweise schauen Sie in Drehmoment X 2D, die eine Menge für Sie. Wenn Sie schon bezahlt zu entwickeln, die für XNA erhalten Sie die engine Binärdateien für kostenlos, und es gibt eine utility-Klasse, die Konvertiten aus dem Winkel an Vektoren und Rücken, sowie andere nützliche Funktionen wie diese.
Edit: Als Ranieri wies darauf hin, in den Kommentaren, dass die Funktion nicht sinnvoll ist, wenn bis 0 Grad. Hier ist eine, die funktioniert (up ist (0, -1), rechts (1, 0), (0, 1), left (-1, 0):
Ich möchte auch zu beachten, dass ich mit dem Drehmoment für eine Weile, und verwendet es 0 Grad, also das ist, wo ich bekam das Teil. Bis Bedeutung, in diesem Fall, ziehen Sie die textur auf dem Bildschirm in der gleichen Weise, dass es in der Datei. So down wäre die Zeichnung der textur auf den Kopf.
Guter Fang, vielen Dank!
InformationsquelleAutor Venesectrix
Es gibt keine Konvention für die Richtung einen bestimmten Winkel repräsentiert in XNA, so können Sie einfach definieren Sie es wie Sie wollen.
Ich bin nicht sicher, Wann ich das Letzte mal verwendet Winkel in einem Spiel war. In fast jedem Fall ist es einfacher, direkt mit Vektoren, wenn auch ein wenig weniger intuitiv, mit zu beginnen.
InformationsquelleAutor Tom Gillen