Zrozumieć system współrzędnych LibGDX i rysować sprity

Jestem więc bardzo podekscytowany, że mogę zacząć używać LibGDX do mojego pierwszego tytułu na Androida dla OUYA i PC, ale wpadłem na kilka problemów z LibGDX. (Na wszystkie moje pytania można odpowiedzieć patrząc na źródło, ale naprawdę staram się również zrozumieć wybory projektowe).

Na początek układ współrzędnych. Utworzyłem projekt za pomocą słoika Project Setup i tworzy on OrthographicCamera w ten sposób

camera = new OrthographicCamera(1, h/w);

Z mojego czytania rozumiem, że LibGdx używa lewego dolnego rogu dla 0,0 i yUp. W porządku. Widzę, że łatwo jest zmienić na y, jeśli chcę, ale nie rozumiem następnego kawałka kodu, który został utworzony.

Dla domyślnego ikonki, która zostanie utworzona, pozycja jest ustawiana w ten sposób.

logoSprite.setOrigin(logoSprite.getWidth()/2, logoSprite.getHeight()/2);
logoSprite.setPosition(-logoSprite.getWidth()/2, -logoSprite.getHeight()/2);

Kiedy uruchamiam ten podstawowy program, widzę, że obraz logo, który dodałem, jest wyśrodkowany na ekranie. Próbuję zrozumieć, dlaczego wartości są ujemne w ustawionej pozycji i dlaczego używają szerokości i wysokości ikonki zamiast grafiki w i h portu widoku? Jeśli zmienię szerokość i wysokość ekranu, obraz zostanie narysowany w jakiejś nieparzystej pozycji w dolnej prawej części ekranu.

Moje następne pytanie to sprite.setSize vs sprite.setScale. Dlaczego różnica między tymi dwoma? (Wygląda na to, że robią to samo, z wyjątkiem tego, że setScale pozostawia getWidth i getHeight bez zmian).

Ponieważ moja gra będzie używać kamery 2D do przesuwania, powiększania i obracania, staram się zrozumieć jak najwięcej o strukturze libgdx, zanim zacznę pisać dowolny kod.

Na marginesie, mam tło do tworzenia gier i matematyki, a także stworzyłem kilka gier 2D i 3D za pomocą XNA. Znajduję LibGdx trochę frustrujące, ponieważ nie odciąga OpenGL tak bardzo, jak tego oczekiwałem, i do tej pory rysowanie 2D, z którym eksperymentowałem, wydaje się bardziej mylące niż powinno!

Chciałem też zauważyć, że planuję używać kręgosłupa do moich animacji. Czy to powinno zmienić mój wybór używania y-up lub y-down?

questionAnswers(3)

yourAnswerToTheQuestion