LibGdx Текстурная упаковка
Я хочу использовать анимированных спрайтов в моем проекте LibGdx.
У меня есть спрайт-листы, а также отдельные изображения для спрайтовых анимаций.
При создании текстурного атласа, должен ли я использовать сам лист спрайта или отдельные изображения для упаковки? Какой из них лучший?
В настоящее время я создаю отдельный атлас для каждой анимации спрайта, используя отдельные изображения, и добавляю файлы pack& png в папку assets. Это работает. Но я надеюсь, что есть какой-то способ эффективно использовать один файл пакета и один файл png для игры.
Также я хочу узнать о присвоении имен отдельным изображениям спрайт-листа. Я называю это так, чтобы "name_01,name_02.....etc".
Пожалуйста, предложите лучший способ создания единого текстурного атласа для всей игры, который содержит листы спрайтов и изображения без спрайтов.
2 ответа
Упакуйте все изображения спрайт-анимации в один файл пакета.
Получить TextureAtlas из AssetManager, если вы хотите использовать AssetManager или вы можете создать объект TextureAtlas.
Тогда вы можете позвонить getArray(gameAtlas.findRegion("resourceName"),x,y);
метод. Это возвращает Массив TextureRegion, который может использоваться в качестве аргумента класса Animation.
public TextureRegion[] getArray(TextureRegion textureRegion,int column,int row){ TextureRegion[][] arrayTextureRegion= textureRegion.split(textureRegion.getRegionWidth()/column,textureRegion.getRegionHeight()/row); TextureRegion textureRegion1[]=new TextureRegion[arrayTextureRegion[0].length*arrayTextureRegion.length]; for (int i=0;i<arrayTextureRegion.length;i++) for (int j=0;j<arrayTextureRegion[i].length;j++) textureRegion1[i*arrayTextureRegion[i].length+j]=arrayTextureRegion[i][j]; return textureRegion1; }
Вы должны будете использовать упаковщик текстур. https://code.google.com/archive/p/libgdx-texturepacker-gui/
Создайте лист спрайтов как одну текстуру для анимации и упакуйте их.