Es ist sogar in dem Dokument geschrieben, dass Camera.unproject()
davon ausgeht, dass der Bildschirm hat es in der oberen linken Ecke, auf der anderen Seite Camera.project()
geht davon aus, dass der Bildschirm seinen Ursprung in der unteren linken Ecke hat. Das ist so nervig. Ist das beabsichtigt? Bekomme ich nichts?Warum werden Camera.unproject() und Camera.project() in libGdx nicht umgekehrt?
tmp3.x = selected.pos.x;
tmp3.y = selected.pos.y;
camera.unproject(tmp3);
camera.project(tmp3);
Dies dreht den Vektor, wo es den gleichen Vektor zurückgeben sollte.
EDIT:
Zuerst versuchte ich Viewport.project()
und Viewport.unproject()
zu verwenden, um Punkte von einem Ansichtsfenster in ein anderes zu konvertieren (ein Kontextmenü über ein Spielelement zu positionieren) .Sie auch diese Namens Verwirrung erben, und es ist nicht einmal erwähnt in den Javadocs dort.
PS. Ich mag LibGdx wirklich. Ich habe das gerade geschrieben, um vielleicht in Zukunft jemandem Kopfschmerzen zu ersparen, da ich dies nirgends im Internet direkt gefunden habe.
Ich denke, du hast Recht. Ich war einfach nur genervt, weil ich ein paar Stunden damit verschwendet habe, einen Fehler zu finden, weil ich dachte, ich könnte mit Sicherheit davon ausgehen, dass diese beiden Methoden paarweise sind und das war der letzte Ort, an dem ich nachgesehen habe. Ich finde es nur eine schlechte Design-Wahl, dass der Unterschied nicht in der Benennung widerspiegelt. –