시퀀스 끝에 removeAllChildrenWithCleanup :을 추가 할 때까지 제대로 작동하는 변형 시퀀스가 있습니다. 변환 시퀀스를 유지하고 removeAllChildrenWithCleanup을 실행하려면 어떻게해야합니까? 나는 스프라이트를 정리 한 후 CCCallFuncND을 CCMoveTo의 시퀀스를 사용하여 스프라이트를 정리하려했지만, 그것은 작동하지 않습니다removeAllChildrenWithCleanup : runAction을 잃지 않고 어떻게 사용할 수 있습니까?
// Note: spriteSheet is a CCSpriteBatchNode
CCArray *oldSprites = [spriteSheet descendants];
for (int j=0; j < (int)[oldSprites count]; j++) {
CCSprite *sprite = (CCSprite *)[oldSprites objectAtIndex:j];
if (sprite != nil) {
id actionMove = [CCMoveTo actionWithDuration:0.75
position:ccp(0,0)];
[sprite runAction:actionMove];
}
}
[spriteSheet removeAllChildrenWithCleanup:YES];
참고 : 여기에
문제의 코드 조각입니다 어느 한 쪽. 내가 CCSpriteBatchNode에서 자식을 제거하는 것이 매우 느리다는 것을 알고 있기 때문에 removeAllChildrenWithCleanup :을 사용하려고합니다.
나는 이해하지 못한다. 물론 모든 어린이를 삭제하면 화면에서 사라집니다. 정리 옵션은 작업을 중지할지 여부를 결정합니다. 그리고 "느려질 수있는"것이 천천히 사용할 수 없다는 것을 의미하지는 않습니다. 조금 느리지 만 아마 그것을 알아 채지 못할 것입니다. – LearnCocos2D
@ LearnCocos2D : 문제는 아이들을 제거하는 것에 대한 행을 추가하면 변형 시퀀스가 더 이상 발생하지 않는다는 것입니다. 저는 변형 시퀀스가 일어나기를 기대하고 있었고 아이들을 제거 시켰습니다. 그러나 실제 결과는 아이들이 단지 제거된다는 것입니다. 그리고 변형 순서는 발생하지 않습니다. – Roger
그런 다음 순서가 끝난 후에 아이들을 제거하십시오. CCCallBlock/Func을 사용하여 시퀀스가 끝나면이를 수행하십시오. removeAll .. 메서드가 실행되기 전에 액션이 끝날 것이라고 생각 했었지만 그렇지 않습니다. 작업이 추가되고 즉시 removeAll .. 함수가 실행됩니다. 그 행동은 달리고 일할 기회가 없습니다. – LearnCocos2D