나는 cocos2d에서 게임을 만들고 있습니다. Game Scene에는 UIViewController 인 메인 메뉴로 돌아갈 수있는 메뉴 버튼이 있습니다. 사용자가 다시 재생을 선택하고 동일한 게임 장면이 감독에서 실행되도록 호출되면 게임 장면 위에 분홍색 화면이 나타납니다.동일한 cocos2d 장면을 다시로드하면 분홍색 화면이 표시됩니다.
동일한 장면을 그 자체로 바꾸기 때문일 수 있습니다. 그래서 메인 메뉴가 호출 될 때 먼저 빈 장면으로 바꿨습니다. 코드 대체 장면은 다음과 같습니다.
if ([[CCDirector sharedDirector] runningScene] == NULL) {
[[CCDirector sharedDirector] runWithScene: [MySceneLayer scene]];
}
else {
[[CCDirector sharedDirector] replaceScene:[MySceneLayer scene]];
}
실행중인 장면이없는 경우 처음 확인한 후 게임 장면을 처음 시작합니다. 일부 장면이 이미 실행중인 경우 (이 경우 비어있는 장면),이를 게임 장면으로 바꿉니다. 오래된 장면이 제대로 파괴된다는 것을 의미하는 게임 장면의 dealloc이 호출됩니다. 그렇더라도 빈 장면을 게임 장면으로 바꾸면 분홍색 화면이 나타나고 다른 장면으로 바꾸면 아무런 문제가 없습니다.
이유는 무엇이며 해결책은 무엇입니까?