미리로드 된 장면 B를 이와 같이 장면 A에 푸시합니다. 장면 B의 루트 노드는 ~ 2 초 동안 실행되는 애니메이션을 가지고 있으며, 애니메이션이 완료되면 장면 B가 팝업되도록합니다. 나는 그것이 아래처럼 작동해야한다고 생각합니다. 그러나 popScene에서 충돌합니다. 푸시/팝이 Cocos2D v3에서 실제로 작동합니까?Cocos2D v3.x에서 장면을 올바르게 푸시하고 터뜨리는 방법
SceneRedroom* sceneredroom = (SceneRedroom*)[self.ccscenewithSceneredroom getChildByName:@"SceneRedroom" recursively:NO];
[sceneredroom.animationManager setCompletedAnimationCallbackBlock:^(id sender) {
[[CCDirector sharedDirector] popScene];
}];
[[CCDirector sharedDirector] pushScene:self.ccscenewithSceneredroom];
나는 충돌이 상당히 무작위이다. 장면을 밀거나 터뜨릴 때 일부 항목이 잘못 할당 해제되거나 비슷해 보이는 것 같습니다.
크래시 메시지 (로그의 마지막 줄)를 게시하는 경우 스택 및 문제 코드를 호출하십시오. 예외 중단 점을 추가하십시오. – LearnCocos2D
크래시가 너무 무작위 였기 때문에 크래시 메시지가 발생했지만 일반적으로 메시지가 잘못된 개체로 잘못 전달되었습니다. 따라서 일부 이유 때문에 일부 할당 해제가 일찍 일어나는 것으로 의심됩니다. 어쨌든 일부를 만들 시간이 없습니다. 테스트 케이스를 만들고 다른 장면을 사용하여 컷씬을 표시하지 않도록 되돌려 놓았습니다. 기존의 장면 계층에 다른 CCNode를 추가하기 만하면됩니다. – Jonny
AnimationCallback에서'popScene()'을 호출하지 말고 대신에'popScene()'을 호출하십시오. –