Распределение слоев и спрайтов в Cocos2d - PullRequest
1 голос
/ 16 ноября 2011

У меня есть простая игровая структура с несколькими GameScenes, содержащими GameLayer и BackgroundLayer. К GameLayer добавлены CCSprites. Ничто не будет удалено или добавлено во время игры.

Я не уверен, что лучший способ убедиться, что все освобождено правильно. Могу ли я просто позвонить [GameScene release], чтобы освободить содержащиеся GameLayer и BackgroundLayer при каждой смене сцены? Освобождает ли освобождение GameScene все содержащиеся в нем дети? Существует ли системный подход к освобождению в cocos2d, чтобы убедиться, что вы охватили все?

Ответы [ 2 ]

2 голосов
/ 17 ноября 2011

Если вы не отправите сохранение или копирование на один из узлов Cocos2D, вам не нужно ничего делать.Когда вы меняете сцену с помощью CCDirector replaceScene, Cocos2D очистит эту сцену для вас.

Вы также можете просто начать использовать ARC (автоматический подсчет ссылок), когда эти соображения остались в прошлом.Для этого вам нужно будет использовать специально модифицированную версию Cocos2D или просто Kobold2D, которая поддерживает ARC из коробки.Фактически, он включен по умолчанию во всех примерах проектов Kobold2D.

0 голосов
/ 17 ноября 2011

Если вы создаете сцену и слои (любые узлы cocos2d в целом) с помощью метода класса узла (т. Е. [Узел CCscene]), вам не нужно освобождать их, поскольку они являются автоматически выпускаемыми объектами. Однако я предлагаю переопределить dealloc для удаления AllChildrenWithCleanup: TRUE

Надеюсь, это помогло вам

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...