XNA - Mauskoordinaten mit einem 2D-Kamerasystem mit Rotation / Zoom / Übersetzung erhalten

Ich habe eine 2D-Kamera mit dieser Übersetzungsmatrix:

        Transform = Matrix.CreateTranslation(new Vector3(-Position.X, -Position.Y, 0)) *
                     Matrix.CreateRotationZ(Rotation) *
                     Matrix.CreateScale(new Vector3(Scale, Scale, 0)) *
                     Matrix.CreateTranslation(new Vector3((GraphicsDevice.Viewport.Width * 0.5f), (GraphicsDevice.Viewport.Height * 0.5f), 0));

Was für Rotation / Zoom funktioniert, wobei der Ursprung die Mitte der Kamera ist.

etzt versuche ich, die Mauskoordinaten der Welt zu ermittel

Ich habe versucht, nur eine inverse Transformation zu verwenden, aber das führte nur zu NaN-Fehlern. Ich schätze, ich muss eine andere Übersetzungsmatrix für die Mauskoordinaten einrichten, eine Umkehrung der aktuellen, aber ich kann nicht herausfinden, wie dies eingerichtet ist

Ich habe das

MousePosition = new Vector2 ((Mouse.GetState (). X - DrawTransform.Translation.X) * (1 / Gamecode.Camera1.Scale), (Mouse.GetState (). Y - DrawTransform.Translation.Y) * (1 / Gamecode.Camera1.Scale));

Aber das berücksichtigt Rotation nicht

Antworten auf die Frage(2)

Ihre Antwort auf die Frage