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/

Создайте лист спрайтов как одну текстуру для анимации и упакуйте их.

Другие вопросы по тегам