2013-02-08 5 views
0

Я создал один уровень в cocos2d, и у меня есть кнопка паузы на экране. нажав на экран паузы, он откроет меню (возобновить, перезагрузить, настройки). я хочу, чтобы при нажатии на меню перезагрузки мой уровень начнется с начала. что я попробовал, я удалил этот класс класса и вызвал его снова, но он не работал. Я попытался заменитьScene. он тоже не работал. как я могу это достичь? Я пробовал это, и он работает.Как перезапустить игру (слой) в cocos2d

[[CCDirector sharedDirector] resume]; 
    [[CCDirector sharedDirector] pushScene:[HelloWorldLayer node]]; 

Но это пишут, что я вызываю pushScene снова и снова.? это повлияет на мою игру. coz до сих пор теперь я удаляю этот HelloWorldLayer, который я хочу снова перезапустить.

ответ

0

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

Не забудьте создать новую сцену (как в вашем примере кода), не пытайтесь вызвать replaceScene с уже запущенной сценой, которая завершится с ошибкой.

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

+0

Спасибо Steffen. Я заменил pushScene на replaceScene. И dealloc вызывается после замены сцены. – Zohaib

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