Verstehen des LibGDX-Koordinatensystems und Zeichnen von Sprites
Daher bin ich sehr erfreut, LibGDX für meinen ersten Android-Titel für OUYA und PC zu verwenden, aber ich habe Probleme mit LibGDX. (Alle meine Fragen können mit Blick auf den Quellcode beantwortet werden, aber ich versuche auch wirklich, die Designauswahl zu verstehen.)
Zunächst das Koordinatensystem. Ich habe ein Projekt mit dem Projekt-Setup-Jar erstellt und es erstellt eine OrthographicCamera wie folgt
camera = new OrthographicCamera(1, h/w);
Aus meiner Lektüre verstehe ich, dass LibGdx die linke untere Ecke für 0,0 und yUp verwendet. Fein. Ich sehe, dass es ziemlich einfach ist, zu y down zu wechseln, wenn ich möchte, aber ich verstehe das nächste Stück Code, das erstellt wurde, nicht.
Für das Standard-Sprite, das erstellt wird, wird die Position wie folgt festgelegt.
logoSprite.setOrigin(logoSprite.getWidth()/2, logoSprite.getHeight()/2);
logoSprite.setPosition(-logoSprite.getWidth()/2, -logoSprite.getHeight()/2);
Wenn ich dieses Basisprogramm ausführe, wird das von mir hinzugefügte Logo zentriert auf dem Bildschirm angezeigt. Ich versuche zu verstehen, warum die Werte in der festgelegten Position negativ sind und warum Sprite-Breite und -Höhe anstelle der Grafiken w und h des Ansichtsfensters verwendet werden. Wenn ich die Bildschirmbreite und -höhe ändere, wird das Bild in einer ungeraden Position unten rechts auf dem Bildschirm gezeichnet.
Meine nächste Frage ist sprite.setSize vs sprite.setScale. Warum ist der Unterschied zwischen den beiden? (Sie scheinen dasselbe zu tun, außer dass setScale getWidth und getHeight unverändert lässt.)
Da in meinem Spiel eine 2D-Kamera zum Schwenken, Zoomen und Drehen verwendet wird, versuche ich, so viel wie möglich über das libgdx-Framework zu verstehen, bevor ich mit dem Schreiben von Code beginne.
Als Randnotiz habe ich eine Spielentwicklung und einen mathematischen Hintergrund und ich habe mehrere 2D- und 3D-Spiele mit XNA gemacht. Ich finde LibGdx ein bisschen frustrierend, da es OpenGL nicht so sehr abstrahiert, wie ich es erwartet hatte, und die 2D-Zeichnung, mit der ich experimentiert habe, scheint bisher verwirrender zu sein, als sie sein sollte!
Ich wollte auch erwähnen, dass ich vorhabe, Rücken für meine Animationen zu verwenden. Sollte das meine Wahl ändern, y-up oder y-down zu verwenden?