2015-07-14 6 views
0

В настоящее время я использую файл SKS для настройки местоположений спрайтов через пустые узлы или в некоторых случаях я фактически перетаскиваю спрайт в редактор сцены. После некоторых проблем с загрузкой мне посоветовали предварительно загрузить все текстуры с помощью атласа текстуры. Одна проблема, с которой я столкнулся, прежде чем перейти к этой схеме, заключалась в том, что мой метод didMoveToView использовал все больше и больше памяти каждый раз, когда сцена загружалась и перезагружалась. У меня есть 3 сцены в моей игре SpriteKit: главное меню, уровень выбора и уровень сцены. Как должны управляться мои сцены? Должен ли я создавать экземпляр каждого из них и хранить их по всему миру, чтобы избежать слишком большого объема памяти? В настоящее время каждая сцена способна инициализировать и вызывать presentScene. С моей сценой уровня есть хорошая настройка, которая должна быть выполнена, и при загрузке с сцены выбора уровня я не уверен, что это нужно воссоздавать снова и снова. Надеюсь, это ясно, что я спрашиваю. Заранее спасибо.Управление сценами SpriteKit Эффективно

ответ

0

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

Если вы хотите, вы можете вручную «нуль» всех объектов сцены и [self removeAllChildren]; в методе -(void)willMoveFromView:(SKView *)view.

+0

Спасибо за быстрый ответ. Я понимаю, что память управляется дугой и т. Д., Но это не мой вопрос. Мой вопрос больше связан с управлением сценой, так что я не подвергаюсь утечкам памяти или другим неэффективности. – 02fentym

+0

@ 02fentym - Не видя весь ваш код, вы не можете сказать, есть ли у вас утечка памяти. Это не столько проблема SKScene, сколько правильная кодировка. Если вы считаете, что где-то есть утечка памяти, запустите Инструменты и найдите утечку. – sangony

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