2013-02-22 70 views
0

我写了这段代码。CCParticleSnow不循环/重复。

CCSpriteFrame *starParticleFrame = [[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:spriteName]; 
      CCParticleSnow *emitter = [[CCParticleSnow alloc] initWithTotalParticles:8]; 

      [emitter setTexture:[starParticleFrame texture] withRect:[starParticleFrame rect]]; 
      emitter.position = ADJUST_XY(theScreenSize.width/2, 3*theScreenSize.height/4); 
      emitter.scale = HD_PIXELS(1.5); 

      emitter.speed = 20 + arc4random() %20; 
      [emitter setDuration:kCCParticleDurationInfinity]; 

      //[emitter setGravity:CGPointMake(0, -150)]; 
      [self addChild: emitter z:-1]; 

它的工作原理。但问题是,它只是一次起火,而不是连续的。 (在这种情况下,只有8个粒子出来,就是这样)。

但是,如果我交换的代码的第2行到

CCParticleSnow *emitter = [CCParticleSnow node]; 

然后粒子系统能够不断循环。我阅读了文档并用Google搜索了这个 ,但无济于事。最后一次尝试是将该持续时间设置为kCCParticleDurationInfinity。但仍然没有工作。

请帮助我。

回答

1

您将发射器限制为8个粒子。它只会在最初的8个消失后产生新的粒子。

+0

好吧有道理。我想我误解了“initWithTotalParticle”。结束使用[CCParticleSnow节点],然后emitter.emissionRate = 5;得到我想要的东西。再次感谢Steffen。 :) – GeneCode 2013-02-23 01:05:11