2014-01-02 6 views
2

Это заставляет меня думать.Может ли Sprite Kit загружать текстурный атлас несколько раз, если позже использовать SKTextureAtlas?

Игра начинается, и я создаю спрайты с помощью метода -spriteNodeWithImageNamed:. Позже для анимации я создаю объект SKTextureAtlas. Некоторые говорят, что это быстрее, потому что -spriteNodeWithImageNamed: сначала заглянет в ваш комплект приложений для png, и после этого он заглянет в атлас.

Но что мне непонятно: если я создам SKTextureAtlas позже, это узнает об уже загруженном изображении атласа, или это будет глупо и просто загрузит изображение снова?

И если я создаю объект SKTextureAtlas в нескольких узлах для того же атласа. Будет ли он загружать атлас несколько раз? Должен ли я использовать только один экземпляр SKTextureAtlas для любого атласа?

ответ

6

Это правда, что spriteNodeWithImageNamed: будет искать файл в комплекте в первую очередь. Если он не может найти файл пакета, он проверяет, существует ли изображение с таким именем в атласе, доступном в комплекте.

Если Sprite Kit находит изображение с этим именем в любом атласе, он автоматически загрузит этот атлас, чтобы использовать указанное изображение в качестве спрайта при использовании инициализаторов spriteNode/initWithImageNamed:. Это позволяет легко начинать разработку без атласов, а затем добавлять файлы в атлас.

Я рекомендую использовать атласы с самого начала, потому что могут быть тонкие различия, и вы сможете более точно оценить производительность своего приложения.

Да, комплект Sprite достаточно умен, чтобы не перезагружать ресурс, который уже находится в памяти. Он также не создаст новый экземпляр одного атласа, а скорее вернет вам указатель на уже существующий атлас с тем же именем.

В комплекте с Sprite также используется механизм кэширования, поэтому, даже если последняя сильная ссылка на файл ресурсов была удалена, файл останется в памяти. Однако я не думаю, что кто-либо провел подробный анализ того, как и когда и в каком порядке Sprite Kit в конечном итоге выпускает кешированные экземпляры из памяти.

Короткий рассказ: полагайтесь на комплект Sprite, чтобы делать правильную вещь для вас.

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