2012-04-21 90 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 .."); 
}; 

再次,相當實驗..