Ich versuche, ein Bild auf einem Punkt auf dem Bildschirm anzuzeigen.Spiel - Pitch und Gieren nach XY konvertieren
Ich habe die Steigung und die Gier des aktuellen Punktes. Alles, was ich brauche, ist, diese Werte in 2 Koordinaten umzuwandeln. Hier
ist das, was ich bisher getan:
double tmp_yaw = yaw - myPlayer_yaw;
double tmp_pitch = pitch - myPlayer_pitch;
if (tmp_yaw < -180D) tmp_yaw += 360D;
if (tmp_yaw > 180D) tmp_yaw -= 360D;
// X Y screen coords
int x = (tmp_yaw/180) * (screen_width/2);
int y = (tmp_pitch/90) * (screen_height/2);
Auf den ersten Blick dieser Code sieht einfach aus, aber ich weiß nicht, warum ich nicht den Punkt anzeigt, wo es erwartet wird.
Variablen yaw
und pitch
sind hier die Drehung auf den Punkt in 3D.
Variablen myPlayer_yaw
und myPlayer_pitch
stehen für wo der Spieler jeden Moment sieht.
Habe ich etwas falsch gemacht?
Ich möchte diese Art der Ergebnisse erhalten:
- Ich suche ein Spieler => Returns (Höhe/2, Breite/2)
- Der Spieler hinter mir => Returns (Höhe, Breite/2)
- Der Spieler auf meinem linken => Returns (Höhe/2, 0)
- Der Spieler ist auf meinem rechten => Returns (Höhe/2, Breite)
- Der Spieler über mir ist gerade => Returns (0, Breite/2)
Pitch und Gier sind Winkelmessungen. Wie beabsichtigen Sie, einen Winkel zu einer Bildschirmposition zuzuordnen? –
Ja das ist genau das, was ich will – Manitoba
Punkt ist auf der Unterseite, wenn die Gier 180 ist, etc ... – Manitoba