CCAnimation *anim = [CCAnimation animationWithSpriteFrames:animFrames delay:reloadSpeed];
CCFiniteTimeAction *animFinite = [CCAnimate actionWithAnimation:anim];
CCRepeat *repeatAction = [CCRepeat actionWithAction:animFinite times:1];
id animDone = [CCCallFuncN actionWithTarget:self selector:@selector(doneAnimatingOnce)];
[self.person runAction:[CCSequence actions:repeatAction, animDone, nil]];
以上代码永远不会达到“doneAnimatingOnce”功能 但下面的代码确实如此,所以我觉得finiteTimeAction
有问题//CCFiniteTimeAction *animFinite = [CCAnimate actionWithAnimation:anim];
//CCRepeat *repeatAction = [CCRepeat actionWithAction:animFinite times:1];
id animDone = [CCCallFuncN actionWithTarget:self selector:@selector(doneAnimatingOnce)];
[self.person runAction:[CCSequence actions:animDone, nil]];
所有我想做的就是运行精灵表动画一次,但我已经苦苦挣扎了大约4个小时,有人可以帮忙吗?
CCFiniteTimeAction *animFinite = [CCAnimate actionWithAnimation:anim];
id animDone = [CCCallFunc actionWithTarget:self selector:@selector(doneAnimatingOnce)];
[self.person runAction:[CCSequence actionOne:animFinite two:animDone]];
运行动画,但该函数仍未被调用
答案 0 :(得分:0)
如果您希望动画运行一次,则不需要任何CCRepeat
操作。尝试这样的事情.-
CCAnimation *anim = [CCAnimation animationWithSpriteFrames:animFrames delay:reloadSpeed];
CCFiniteTimeAction *animFinite = [CCAnimate actionWithAnimation:anim];
CCCallFunc *animDone = [CCCallFunc actionWithTarget:self selector:@selector(doneAnimatingOnce)];
[self.person runAction:[CCSequence actionOne:animFinite two:animDone]];