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
Vous devez vous connecter pour publier un commentaire.
Si vous souhaitez dessiner un sprite dans le centre de l'écran, dans votre méthode de création de la
ici scrw est votre fenêtre de largeur,
et scrh est votre fenêtre en hauteur,
de cette façon, votre sprite sera au centre de l'écran
sprite.setsize
est utilisé pour le réglage de la taille du sprite etsprite.setscale
est utilisé lorsque l'échelle d'une grande/petite texture de sorte que sa qualité reste bonne dans tous les appareils(hdpi.mdpi,xhdpi,ldpi)..pas besoin de s'inquiéter si vous utilisez la colonne vertébrale, il fonctionne bien en libgdx..
oui, vous pouvez retourner l'animation,dans libgdx si nous voulons inverser une animation nous venons de le mettre dans un sprite et puis retourner le sprite comme cette image.flip(true,false);
OriginalL'auteur sandeep kundliya
Vous pouvez utiliser ce code si possible
Le centre du sprite dans le milieu de l'écran Où "l'image" est la Texture que vous avez chargé/déclarés initialement.
Quant à savoir pourquoi elle est venue dans une position étrange, est dû au fait que vous utilisez un appareil photo.
Qui change le point de vue beaucoup il suffit d'aller dans les documentations de libgdx propos de l'appareil photo ici
OriginalL'auteur srikanth
Dans mon cas, j'avais besoin de définir la position de la caméra, puis appel de méthode update ().
Alors n'oubliez jamais de l'appareil photo (0,0) est en son centre. Tout est placé de cette façon. Mon appareil photo code:
Appeler cette méthode à partir de l'intérieur de render();
OriginalL'auteur resw67