当Cocos2d CCParticleExplosion完全结束时,我想运行一个回调/选择器。我该怎么做?
我尝试使用与发射器具有相同持续时间的scheduleOnce,但是由于我猜测发射器的持续时间控制它将发射新粒子的时间长度,但不是完整动画持续多长时间。
答案 0 :(得分:0)
尝试使用CCCAllFunc
操作对操作进行排序(使用CCSequence)。运行一个操作后,另一个操作运行,可以将CCCAllFunc分配给您选择的选择器/方法。
答案 1 :(得分:0)
不确定这是否可以接受,但我测试过“它可以在我的Mac上运行”。
在CCParticleSystem.h中
// experimental
typedef void (^onCompletedBlock)();
@property (readwrite, copy) onCompletedBlock onComplete;
在CCParticleSystem.m中
@synthesize onComplete;
在同一文件更新方法中,
_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 ..");
};
再次,相当实验..