0

저는 cocos2d V3.x 프로젝트 (SpriteBuilder V1.2.1)에서 일하고 있습니다. 현재이 액션 시퀀스를 CCSprite 지연으로 실행하려고합니다. 문제가 있는지 또는 CCActionSequence가 작동하는 방식을 이해할 수 없는지 확실하지 않습니다.Cocos2d CCActionSequence 순서와 지연이 엉망이되었습니다

('2 초 후에) 지연이 5 초 후에 완료되면'a '동작을 시작한 다음 두 함수가 호출됩니다 ('c '및'd '동작). 그러나 시뮬레이터에서 순서가 잘못되었습니다 ('d'는 'c'앞에 호출됩니다). 'a'가 회전을 시작한 후 약 1 초라고합니다.

뭐가 잘못 되었나요? CCActionSquence가 실제로 작동하는 방법이라면 이전 단락에서 설명한대로 작동하게하려면 어떻게해야합니까?

CCAction *a = [CCActionRotateBy actionWithDuration:2 angle:360]; 
CCAction *b = [CCActionDelay actionWithDuration:5]; 
CCAction *c = [CCActionCallFunc actionWithTarget:self selector:@selector(limpiarSeleccionadas)]; 
CCAction *d = [CCActionCallFunc actionWithTarget:self selector:@selector(endTurn)]; 
[[_arregloBolitas objectAtIndex:random] runAction:[CCActionSequence actionWithArray:@[a,b,c,d]]]; 

고마워요!

+1

나는 아무것도 잘못 본 것이 없다 ... 시퀀스에 대한 var_list 생성자를 시도하여 결과가 바뀌는 지 확인하십시오. [CCActionSequence 액션 : a, b, c, d, nil]; – YvesLeBorg

+0

아니, CCAction 대신 매개 변수로 CCActionFiniteTime을 사용하는 생성자에 대한 경고 외에도 해당 생성자를 사용하여 차이점을 찾을 수 없습니다. 이걸 해킹해야 할 것 같아요 ... CCActionDelay가 작동하지 않는 것에 대해 cocos2d가 실망감을 느낍니다. 많은 액션 시퀀스에 의존하는 게임에서 매우 중요합니다. (고맙게도이 것은 아니지만 향후 프로젝트에서는 거대 할 것입니다. 문제가되는 것) : ( – Fdo

+0

, 매번 나를 위해 일하며, 복잡한 시퀀스가 ​​많이있다. 계속 내버려 두지 마라. – YvesLeBorg

답변

0

CCSpawn에 'c'및 'd'동작을 넣을 수 있으며 동시에 실행합니다. 또한 마지막 두 동작을 지연 시키려면 CCDelayTime을 사용하십시오.

CCAction *a = [CCActionRotateBy actionWithDuration:2 angle:360]; 
CCAction *b = [CCDelayTime actionWithDuration:5]; 
CCAction *c = [CCCallFunc actionWithTarget:self selector:@selector(limpiarSeleccionadas)]; 
CCAction *d = [CCCallFunc actionWithTarget:self selector:@selector(endTurn)]; 
[[_arregloBolitas objectAtIndex:random] runAction:[CCSequence actions: a, b, c, d, nil]]; 

내가 환경이없는 시도하십시오, 당신은 약간 수정해야 할 수 있습니다. 감사.

+0

나는 실제로 'd'전에 끝내기 위해 'c'가 필요하다. 다른 길은 아니다. (그리고 그들이 동시에 달릴 경우, 그럴 기회가있다.) ... 너의 제안에 대한 예제 코드를 줄 수 있니? CCDelayTime에 관해서? CCActionDelay가 CCActionSequence에서 이벤트를 지연시키는 올바른 방법이라고 생각했습니다. – Fdo

+0

cocos2d 클래스에 대해 v2.x 및 v3.x 구문을 혼합합니다. – YvesLeBorg

관련 문제