2012-11-29 2 views
0

완벽하게 실행되는 .png 및 .plist 파일에서 애니메이션을 만드는 CCSpriteSheet 및 CCSpriteBatchNode가 있지만 다른 CCAction을 시작하기 위해 프레임이 anymation인지 알 수있는 방법이 있습니까 ??애니메이션 중 CCSprite 프레임 번호

예를 들어 30 프레임의 CCAnimation이 있고 애니메이션이 프레임 15에있을 때 다른 스프라이트에 애니메이션을 적용하고 싶습니다.이 방법이 가능합니까 ??

미리 감사드립니다.

+0

Dunno that. 그러나 당신의 예에서, 당신은 방법을 계획함으로써 그것을 할 수 있습니다. 기본적으로 애니메이션의 프레임 당 지연이 0.05 인 경우 (0.05 * 15) 트리거 할 메소드를 예약해야합니다. 이러한 메서드는 다른 애니메이션을 실행합니다. – Voldemort

답변

0

나는 일반적으로 내 게임 중 하나에서이 코드 조각 같은 뭔가가 필요 이런 종류의를 충족 :

float stall; 
CCAnimation *secondAnim; 
CCSprite *secondSprite; 
NSString *dyingFx; 
id sound = (self.alive ? [GENoopAction action] : 
         [GEPlayFx actionWithSoundFile:dyingFx] 
      ); 

id second = [CCSequence actions: 
     [CCDelayTime actionWithDuration:stall] 
     , [CCShow action] 
     , sound 
     , [CCAnimate actionWithAnimation:secondAnim] 
     , [CCCallFunc actionWithTarget:self selector:@selector(hurtComplete)] 
]; 
secondSprite.visible= NO; 
[secondSprite runAction:second]; 

GEPlayFx 및 GENoopAction 내가 나 자신 (CCActionInstant 구현)에 대해 만든 장난감입니다.

2

애니메이션을 부분으로 분할하고 CCSequence를 사용합니다. 예를 들면 다음과 같습니다.

CCAction *Action = [CCSequence actions: 
         [CCAnimate actionWithAnimation:myCCanimationPart1], 
         [CCCallBlock actionWithBlock:^ 
         { 
          [myOtherSprite runAction:(otherAnimationAction)]; 
         }], 
         [CCAnimate actionWithAnimation:myCCanimationPart2], 
         nil]; 
+0

그게 내 초기 접근이었고 내가 마지막으로 클라이언트에게 제시 한 해결책이었습니다. – Rotten