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?