2017-01-20 4 views
0

Для моего проекта LibGdx у меня есть активы, включая отдельные изображения и листы спрайтов для анимации. Я знаю, что эффективно упаковать все в один атлас.Текстурирование изображений анимации/Листы спрайтов эффективно - Libgdx

Но когда дело доходит до листа спрайтов, как я могу его упаковать? Должен ли я использовать один лист спрайта или отдельные изображения листа спрайтов во время упаковки? Например: у меня есть лист спрайтов с именем «змея» с 4 кадрами. также у меня есть змеиные кадры в snake_01, snake_02, snake_03 и snake_04.

Какой из них лучший способ?

ответ

0

Второй способ намного меньше времени для управления. Поэтому используйте отдельные файлы для каждого кадра анимации, такие как snake_01.png, snake_02.png и т. Д.

LibGDX TexturePacker автоматически назовет все эти области «змеей» и присвоит им индексный номер.

Затем, после загрузки текстурного атласа, вы можете вытащить из всей анимации:

Array<TextureAtlas.AtlasRegion> snakeRegions = textureAtlas.findRegions("snake"); 
Animation<TextureRegion> snakeAnimation = new Animation<TextureRegion>(0.1f, snakeRegions); 

Если вы используете версию LibGDX старше 1.9.5, опускает <TextureRegion> (два раза). Класс Animation стал общим в версии 1.9.5.

+0

Еще одна вещь, когда я получаю область определенного изображения, используя findRegion(), я мог видеть части, находящиеся рядом с изображениями в атласе после рендеринга. Как это происходит? – Niranjana

+1

Если спрайты рисуются меньше, чем 1x1, размер на экране до исходного размера, и вы не используете ближайшую фильтрацию, линейная фильтрация приведет к тому, что близлежащие пиксели на атласе истекут в Sprite. Увеличьте заполнение в настройках пакера текстуры, чтобы бороться с этим. – Tenfour04

+0

проблема решена. Спасибо много! – Niranjana

Смежные вопросы