2012-04-21 86 views
2

我想在Cocos2d CCParticleExplosion完成时运行回调/选择器。我该怎么做呢?当Cocos2d CCParticleSystem完成时回调?

我试着用与发射器相同的持续时间的scheduleOnce,但是由于我猜测发射器的持续时间控制它将发射新的粒子多长时间,但是完成动画持续了多长时间,所以完成得太快。

回答

0

尝试使用CCCAllFunc操作对动作(使用CCSequence)进行排序。一个动作运行后,另一个动作运行,CCCAllFunc可以分配给您选择的选择器/方法。

+0

不知道我明白了吗?我可以像CCFadeIn一样使用粒子发射器吗?我怎么做? – 2012-04-21 18:37:15

0

不知道这是否可以接受,但我测试过,并且“它适用于我的Mac”。

在CCParticleSystem.h

在CCParticleSystem.m

@synthesize onComplete; 
在同一个文件更新方法

// experimental 
typedef void (^onCompletedBlock)(); 
@property (readwrite, copy) onCompletedBlock 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 .."); 
}; 

再次,相当实验..