0

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

例如,我有一个 30 帧的 CCAnimation,我想在动画位于第 15 帧时为另一个精灵设置动画。这可能吗?

提前致谢。

4

2 回答 2

2

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

CCAction *Action = [CCSequence actions:
                        [CCAnimate actionWithAnimation:myCCanimationPart1],
                        [CCCallBlock actionWithBlock:^
                         {
                            [myOtherSprite runAction:(otherAnimationAction)];
                         }],
                        [CCAnimate actionWithAnimation:myCCanimationPart2],
                        nil];
于 2012-12-04T18:07:08.223 回答
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 实现)。

于 2012-12-01T12:43:03.940 回答