我有一个CCSpriteSheet和一个CCSpriteBatchNode来自完美运行的.png和.plist文件的动画,但是,有没有办法知道在哪个帧是anymation以启动另一个CCAction?
例如,我有一个30帧的CCAnimation,当动画在第15帧时,我想要动画另一个精灵。这可能吗?
提前致谢。
答案 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实现)。