Wenn ich es richtig verstanden hab besteht dein Problem darin die Drehung zu berechnen die notwendig ist um auf kürzestem Weg in Richtung Mauszeiger zu drehen!?
Auf Vektoren/Matritzen zu setzen wäre sicherlich vernünftig, ich geh aber mal davon aus dass du es es lieber über einen "einfachen" Rotationswinkel machen willst...
Angenommen dein Sprite befindet sich im Moment an der Position (x, y) und ist um den Winkel alpha gedreht, der Mauszeiger befindet sich an Position (mx, my), Winkel zählen positiv entgegen dem Uhrzeigersinn.
Rechnen wir uns einfach mal die Richtung zum Mauszeiger aus:
dx = mx - x
dy = my - y
Den Drehwinkel Richtung Maus bekommst du daraus über den arctan, am besten mit der Funktion atan2:
phi = atan2(dy, dx)
Das liefert dir die absolute Drehung von der x-Achse aus gemessen zwischen 180° und -180° (aufpassen der Wert der da rauskommt ist nicht in Grad sondern in Radiant).
Da dein Sprite ja schon etwas gedreht ist willst du jetzt die relative Drehung haben, also jenen Winkel den du zu deinem aktuellen dazuzählen musst um dich auf kürzestem Weg zur Kamera zu drehen, nennen wir ihn beta:
beta = phi - alpha
Schauen wir uns ein paar Beispiele an:
1) Die Kamera sei von dir aus gesehen auf 80°, du selbst bist 20° gedreht, du musst dich also um einen Winkel von 80° - 20° = 60° drehen um zur Kamera zu schauen.
2) Die Kamera sei von dir aus gesehen auf 240° = -120°, du selbst bist 20° gedreht, du musst dich also um einen Winkel von -120° - 20° = -140° drehen um zur Kamera zu schauen.
...
Alternativ kannst du aber auch einfach hergehen und von deinen Winkel 360° abziehen wenn der Winkel größer als 180° war um so den "richtigen" zu bekommen. Nehmen wir z.B. 345° wie in deinem Posting von dir geschildert:
345° ist größer als 180, daher Winkel nicht 345° sondern 345° - 360° = -15°