Cocos2D运行动画一次奇怪的错误


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]];

最新更新