Tout d'abord, Texture vs TextureRegion: lorsque vous faites quelque chose comme Texture t = nouvelle Texture (chemin), vous la chargez dans le GPU. De plus, vous devez charger la puissance de 2 textures. Vous pouvez travailler avec d'autres résolutions (Texture.setEnforcePotImages = false), mais il est recommandé d'utiliser pow of 2.
Maintenant, TextureRegion, prend un "morceau" d'une texture, peu importe sa dimension. L'avantage d'avoir une Texture et plusieurs TextureRegion de cette Texture est que vous ne chargez PAS chaque région dans le GPU.
Comme vous le pensez peut-être, lorsque vous souhaitez dessiner avec le SpriteBatch, il est beaucoup plus efficace d'utiliser TextureRegion au lieu de plusieurs textures, je suis désolé, mon anglais n'est pas assez bon. Voici une bonne explication: Textures TextureRegion & SpriteBatch
Maintenant, vous voulez utiliser TextureRegion et une seule image avec une résolution de 2 avec toutes les feuilles de sprites et les images. Devez-vous créer TextureRegions avec toutes les coordonnées et dimensions? Avez-vous besoin d'ouvrir la peinture pour compter les pixels? Non, non. Vous pouvez utiliser quelque chose comme TexturePacker . Il regroupera toutes les textures dans une seule image ET créera un fichier .pack avec les dimensions et les coordonnées de toutes.
Le résultat sera quelque chose comme ceci:
Au lieu de créer une texture, créez un TextureAtlas, comme ceci:
Maintenant, créer vos TextureRegions serait aussi simple que:
(Notez que le nom de la région est le nom de l'image d'origine sans l'extension).
Sprite contient les informations de géométrie, de couleur et de texture pour dessiner des sprites 2D à l'aide de Batch. Cela signifie que vous pouvez facilement les faire pivoter et les déplacer. J'ai créé ma propre classe Entity et je n'ai pas besoin de la classe Sprite. Vous feriez probablement la même chose. Je ne trouve pas cette classe vraiment utile.
La classe d'image hérite d'Actor. Cela signifie que vous pouvez l'ajouter à une étape. Cela fait partie du package Scene2D. Si vous êtes nouveau sur libgdx et que vous ne connaissez pas ce paquet, c'est assez d'informations pour vous sur cette classe. C'est un sujet vraiment intéressant, mais pas de réponse dans cette question.
J'espère que cela aide :)
TextureRegion
s peuvent référencer des parties distinctes (ou se chevauchant) d'une texture, toutTexture
en se référant toujours à l'image entière. Comme changer de textures coûte cher, c'est bien. Votre description donne l'impression deTextureRegion
traiter des textures clairsemées (a la.GL_ARB_sparse_texture
) Mais libGDX et la plupart du matériel sur lequel il fonctionne ne prennent pas en charge cette extension.