Cocos2d CCParticleExplosionが完全に終了したときにコールバック/セレクタを実行したいと思います。これはどうすればいいですか?Cocos2d CCParticleSystemが終了したときのコールバック?
私は、エミッタと同じ持続時間のscheduleOnceを使用しようとしましたが、完全なアニメーションの持続時間ではなく、新しいパーティクルを放出する時間のエミッタ制御時間を推測するので、あまりにも早く終了します。
Cocos2d CCParticleExplosionが完全に終了したときにコールバック/セレクタを実行したいと思います。これはどうすればいいですか?Cocos2d CCParticleSystemが終了したときのコールバック?
私は、エミッタと同じ持続時間のscheduleOnceを使用しようとしましたが、完全なアニメーションの持続時間ではなく、新しいパーティクルを放出する時間のエミッタ制御時間を推測するので、あまりにも早く終了します。
アクションを(CCSequenceを使用して)CCCAllFunc
アクションでシーケンシングしてみてください。 1つのアクションが実行された後、もう1つのアクションが実行されると、CCCAllFuncを選択したセレクタ/メソッドに割り当てることができます。
これが受け入れられるかどうかはわかりませんが、私はテストして "それは私のMacで動作します"。あなたのコードでCCParticleSystem.hで
// experimental
typedef void (^onCompletedBlock)();
@property (readwrite, copy) onCompletedBlock onComplete;
同じファイル更新方法で
@synthesize onComplete;
CCParticleSystem.m
で、_particleCount--;
if(_particleCount == 0 && self.onComplete)
{
[self onComplete]();
[[self onComplete] release];
}
if(_particleCount == 0 && _autoRemoveOnFinish) {
[self unscheduleUpdate];
[_parent removeChild:self cleanup:YES];
return;
}
particleSystem.autoRemoveOnFinish = YES;
particleSystem.position = ccp(screenSize.width/2, screenSize.height/4);
particleSystem.onComplete =^
{
NSLog(@"completed ..");
};
もう一度、かなり実験的です..
わかりません。パーティクルエミッタをCCFadeInのようなアクションと同じように使うことはできますか?それ、どうやったら出来るの? –