2013-02-08 2 views
0

나는 cocos2d에서 한 레벨을 만들었으며 화면에 일시 중지 버튼이 있습니다. 일시 중지 화면을 클릭하면 메뉴 (다시 시작, 다시 시작, 설정)가 열립니다. 다시 시작 메뉴를 클릭하면 레벨이 처음부터 시작됩니다. 내가 뭘 시도했는지 레이어 클래스를 제거하고 다시 전화했지만 작동하지 않았다. 나는 Scene을 교체하려고 노력했다. 어느 쪽도 일을 didnt한다. 내가 어떻게 그걸 성취 할 수 있니? 나는 이것을 시도하고 작동합니다.cocos2d에서 게임 플레이 (레이어)를 다시 시작하는 방법

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

하지만 pushScene을 계속 호출한다고 쓰여 있습니까? 그것은 내 게임에 영향을 미칠 것입니다. 지금까지 내가 다시 시작하려는 HelloWorldLayer를 제거하고 있습니다.

답변

0

replaceScene을 사용해야합니다. pushScene을 사용하면 이전 장면이 할당 취소되지 않으므로 결국 앱이 메모리 부족 상태가됩니다.

코드 샘플과 같이 새 장면을 만들어야하며 replaceScene을 이미 실행중인 장면으로 호출하지 마십시오. 실패합니다.

또한 replaceScene 후에 장면이 할당 취소되는지 확인해야합니다. dealloc 메소드에 중단 점을 설정하십시오. 할당을 해제하지 않으면 장면이 누출되어 모든 종류의 이상한 문제가 발생할 수 있음을 의미합니다.

+0

Steffen에게 감사드립니다. 나는 대체를 위해 pushScene을 대체했다. 그리고 dealloc은 장면을 대체 한 후에 호출됩니다. – Zohaib

관련 문제