(Cocos2d)使用粒子系统时放置autoRemoveOnFinish的位置?

时间:2012-06-14 22:12:22

标签: cocos2d-iphone

我正在我的游戏中创建一个火球系统,我想知道应该在哪里放置优化代码(autoRemoveOnFinish)。这就是我现在正在做的事情。

接口

CCParticleSystem        *_fire;
@property (readwrite,retain) CCParticleSystem *fire;

实施

self.fire = [CCParticleSystemQuad particleWithFile:@"fire.plist"];
self.fire.position = cpv(self.contentSize.width * .5, self.contentSize.height * .5);
self.fire.positionType = kCCPositionTypeGrouped;
_fire.autoRemoveOnFinish = YES;
[self addChild:_fire z:0];

如果这是正确的我正在做的事情为什么fps下降到25左右。我只允许在屏幕上一次创建5个足球。

1 个答案:

答案 0 :(得分:1)

启用autoRemoveOnFinish的位置和时间无关紧要。重要的是,这只适用于一次性效果,如CCParticleExplosion。一次性效果的持续时间属性设置为正值。

如果您遇到帧率问题,我敢打赌,totalParticles(Glyph Designer中的最大粒子数)值设置得太高。您可能只运行了5个粒子效果,但每个粒子系统可能会产生数百个粒子。

每个粒子的大小(分别是它的纹理)也会对性能产生很大的影响。