Comprendre LibGDX système de Coordonnées du dessin sprites

Donc je suis super content pour commencer à utiliser LibGDX pour mon premier android titre pour OUYA et PC, mais je suis en cours d'exécution dans certains accrocs avec LibGDX. (Toutes mes questions peuvent être répondues par la recherche à la source, mais je suis vraiment essayer de comprendre les choix de conception).

Pour commencer, le système de coordonnées. J'ai créé un projet à l'aide de la Configuration du Projet bocal, et il crée un OrthographicCamera comme

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

De ma lecture, je comprends que LibGdx utilise coin en bas à gauche de 0,0 et yUp. Des beaux.
Je vois qu'il est assez facile de changer de y vers le bas si je veux, mais je ne suis pas la compréhension de la partie suivante de code a été créé.

Pour le sprite par défaut qui est créée la position est définie comme.

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

Lorsque j'exécute ce programme de base, je vois l'image du logo que j'ai ajouté est centrée sur l'écran. Ce que j'essaie de comprendre, c'est pourquoi les valeurs sont négatives en position, et pourquoi est-il en utilisant le sprite de la largeur et de la hauteur au lieu de la carte graphique w et h de la vue sur le port? Si je change la largeur de l'écran et la hauteur, puis l'image est affichée dans certaines position étrange dans la partie inférieure droite de l'écran.

Ma prochaine question est de sprite.setSize vs sprite.setScale. Pourquoi est la différence entre les deux? (Ils semblent faire la même chose, sauf setScale feuilles getWidth et getHeight inchangé).

Depuis que mon jeu va être l'aide d'un appareil 2D fortement pour le panoramique, le zoom et la rotation, j'essaie de comprendre autant que je peux sur le libgdx cadre avant de commencer à écrire du code.

Comme une note de côté, j'ai un jeu de développement et de formation en mathématiques et j'ai fait plusieurs jeux 2D et 3D à l'aide de XNA. Je viens de trouver LibGdx un peu frustrant car il ne fait pas abstraction de OpenGL autant que je m'attendais à, et jusqu'à présent, le dessin 2D, j'ai fait des expériences avec semble plus confuse qu'elle ne devrait l'être!

Je tenais également à souligner que je suis à la planification de l'utilisation de la colonne vertébrale pour mes animations. Cela devrait changer mon choix de l'utilisation de l'axe y ou y-bas?

OriginalL'auteur jjhavokk | 2013-10-13

Leave a Reply

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *