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"但是下面的代码确实如此,所以我觉得有限时间操作有问题
//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]];
运行动画,但该函数仍然从未被调用
如果您希望动画运行一次,则不需要任何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]];