2013-09-21 3 views
2

Я использую TextureAtlas для загрузки своих активов для игры в Libgdx. Я знаю, что метод TextureAtlas findRegion дорог, память разумна, поэтому его нужно загружать один раз и хранить.Libgdx - Использование TextureAtlas с кожей. Вопросы памяти?

Я только пройдя через Skin класс, где я столкнулся этот пример:

TextureAtlas atlas = ... 
Skin skin = new Skin(); 
skin.addRegions(atlas); 
... 
TextureRegion hero = skin.get("hero", TextureRegion.class); 

Это означает, что я могу получить мои текстуры, используя кожу, а также. Мой вопрос в том, как класс Skin загружает эти активы. Он загружает все на skin.addRegions(atlas);? Или skin.get("hero", TextureRegion.class); загружает его из TextureAtlas при каждом вызове, делая его таким же дорогим, как звонок atlas.findRegion("hero")?

Я ищу для загрузки всех своих активов из TextureAtlas в начале игры. Итак, я думал, что могу сделать простую нагрузку на кожу, а затем использовать свои активы оттуда?

ответ

1

Из источника видно, что регионы, добавленные к Skin, хранятся в Array и найдены путем сравнения строк в 0,9,8, как и в TextureAtlas. Время поиска будет аналогичным.

+1

Итак, если я хочу загрузить все свои активы из TextureAtlas при запуске, у меня нет другого выбора, кроме как загружать все по имени один за другим? – Jazib

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