как мы можем знать, что мы освободили память - PullRequest
0 голосов
/ 04 января 2011

Я создал игру двух уровней. Теперь, когда мы на первом уровне, я создаю спрайт-лист для анимации и множества спрайтов. По достижении определенного результата я перехожу на уровень 2, теперь вот еще один спрайт-лист и много переменных.

Когда я перехожу с уровня 1 на уровень 2, используя.

[[CCDirector sharedDirector] pushScene: [узел уровня 2]];

когда я проигрываю на уровне 2, я возвращаюсь на уровень 1, используя

[[CCDirector sharedDirector] pushScene: [узел уровня 1]];

Что происходит с листом спрайтов и другими спрайтами, которые я создал ранее на уровне 1? Если я повторю уровень 1, будут ли автоматически удалены спрайт-лист и спрайты, которые я создал ранее? Или они будут существовать в этой новой сцене?

любезно проясните мне эту проблему, у меня много проблем из-за непонимания этого ..

Заранее спасибо ..: (

1 Ответ

0 голосов
/ 04 января 2011

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

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

Наличие пользовательской сцены паузы или бонусного раунда может быть хорошим примером того, когда использовать pushScene: Звоните.

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