Entenda o sistema LibGDX Coordinate e desenhe sprites
Então eu estou super feliz em começar a usar LibGDX para o meu primeiro título android para OUYA e PC, mas eu estou correndo em algumas dificuldades com LibGDX. (Todas as minhas perguntas podem ser respondidas olhando para a fonte, mas estou realmente tentando entender as escolhas de design também).
Para começar, o sistema de coordenadas. Eu criei um projeto usando o jar do Project Setup, e ele cria uma OrthographicCamera como
camera = new OrthographicCamera(1, h/w);
Pela minha leitura, eu entendo que o LibGdx usa o canto inferior esquerdo para 0,0 e yup. Bem. Eu vejo que é muito fácil mudar para baixo se eu quiser, mas não estou entendendo o próximo código que foi criado.
Para o sprite padrão que é criado, a posição é definida assim.
logoSprite.setOrigin(logoSprite.getWidth()/2, logoSprite.getHeight()/2);
logoSprite.setPosition(-logoSprite.getWidth()/2, -logoSprite.getHeight()/2);
Quando executo este programa básico, vejo que a imagem do logotipo que adicionei está centralizada na tela. O que eu estou tentando entender é por que os valores são negativos na posição set, e por que ele está usando a largura e altura do sprite em vez dos gráficos w e h da porta de visualização? Se eu mudar para a largura e a altura da tela, a imagem será desenhada em alguma posição ímpar no lado inferior direito da tela.
Minha próxima pergunta é sprite.setSize vs sprite.setScale. Por que a diferença entre os dois? (Eles parecem fazer a mesma coisa, exceto setScale deixa getWidth e getHeight inalterados).
Como o meu jogo estará usando uma câmera 2D para fazer pan, zoom e rotação, estou tentando entender o máximo possível sobre o framework libgdx antes de começar a escrever qualquer código.
Como uma nota lateral, eu tenho um fundo de desenvolvimento de jogos e matemática e fiz vários jogos 2D e 3D usando XNA. Eu estou achando o LibGdx um pouco frustrante, já que ele não abstrai o OpenGL tanto quanto eu esperava, e até agora o desenho 2D que eu tenho experimentado parece ser mais confuso do que deveria ser!
Eu também queria observar que estou planejando usar a coluna para minhas animações. Isso deve mudar minha escolha de usar y-up ou y-down?