动画期间的CCSprite帧编号

时间:2012-11-29 16:26:05

标签: cocos2d-iphone

我有一个CCSpriteSheet和一个CCSpriteBatchNode来自完美运行的.png和.plist文件的动画,但是,有没有办法知道在哪个帧是anymation以启动另一个CCAction?

例如,我有一个30帧的CCAnimation,当动画在第15帧时,我想要动画另一个精灵。这可能吗?

提前致谢。

2 个答案:

答案 0 :(得分:2)

将动画拆分为多个部分并使用CCSequence。例如:

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

答案 1 :(得分: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实现)。