Ich hänge bereits einige Tage an 2 Dingen, hoffe ihr könnt mir helfen:
Meine Raumschiffe sollen auf alle auf einen Punkt rotiert werden, und ich mache das so:
Code: Alles auswählen
D3DXVECTOR3 v1 = this->flightUnitVector; // Richtung in die das Raumschiff zeigt
D3DXVECTOR3 v2 = focussedPoint - ship->getCenterPosition(); //Vektor vom Raumschiffmittelpunkt zum Planetenmittelpunkt
float angle = atan2(v2.y, v2.x) - atan2(v1.y, v1.x);
if (angle < 0) angle += 2 * PI;
setRotation(angle)
Die zweite Sache ist: Ich will GUI 2D Elemente in meinem Weltkoordinatensystem platzieren und sie NICHT mitzoomen lassen. Das reinpositionieren hat geklappt, das nicht mitzoomen auch. Aber wenn ich zoome, bleibt das Ding nicht an derselben Position. Was ich gemacht habe: Bevor ich die GUI zeichne, und nachdem ich alles andere gezeichnet habe, rufe ich nochmal D3DXMatrixOrthoOffCenterLH und dividiere alle Parameter statt durch einen Zoomfaktor, durch nichts/Eins. Außerdem probiert habe ich die Viewmatrix mit einer Einheitsmatrix zu ersetzen, was zu keiner Darstellung geführt hat.
Bin froh über jede Hilfe! Wie ihr euch vorstellen könnt, sind diese Dinge sehr frustrierend wenn man mehr als 2 Tage keiner Lösung nahekommt.