使用CCParticleBatchNode和CCParticleSystemQuad创建随CCSprite移动的排气烟雾

时间:2012-02-08 10:08:57

标签: cocos2d-iphone

我在cocos2d-iphone和ParticleDesigner中使用粒子系统玩了一点,我使用CCParticleBatchNode来获得良好的性能,因为我有许多相同的发射器。这对于爆炸非常有用,但现在我想在我的船上冒烟,但在这里我被困住了。

我无法将CCParticleBatchNode添加到我的CCSprite中,因为它们只能添加一次并且可以重复使用,但是如何让我的CCParticleBatchNode跟随或坚持我的CCSprite?

我用ParticleDesigner制作的排气粒子系统也有一个重力/方向,但是当我的CCSprite一直在移动时,这是错误的,如果它们只是在一个地方发射粒子并且发射器的运动会产生线索,或?

这是怎么做的?

1 个答案:

答案 0 :(得分:1)

当然你不能将ParticleBatchNode添加到精灵中(如果精灵在SpriteBatchNode中使用的话,就像你不能添加粒子一样)

解决类似问题我用来从ccsprite继承一个类,比如MySprite,然后覆盖位置设置器

-(void) setPosition:(CGPoint) position {

 myParticleEmitter.position = position; //+ offsets if needed
[super setPosition:position];
}

你需要一个指向发射器的指针,我通常会在MySprite中保留对发射器的弱引用,并且每次设置和更改发射器跟随的位置时都会自动引用。

我没有得到你问题的第二部分,但我认为你可以在你的精灵移动/旋转时更新发射器的重力方向,如果需要也覆盖setRotation