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

スプライト シート アニメーションを 1 回だけ実行したいのですが、4 時間ほど苦労しています。誰か助けてください。

CCFiniteTimeAction *animFinite = [CCAnimate actionWithAnimation:anim];
    id animDone = [CCCallFunc actionWithTarget:self selector:@selector(doneAnimatingOnce)];
    [self.person runAction:[CCSequence actionOne:animFinite two:animDone]];

アニメーションを実行しますが、関数はまだ呼び出されません

4

1 に答える 1

0

アニメーションを 1 回だけ実行する場合は、何もする必要はありません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]];
于 2013-08-24T15:17:49.677 に答える