我正在我的游戏中创建一个火球系统,我想知道应该在哪里放置优化代码(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个足球。
答案 0 :(得分:1)
启用autoRemoveOnFinish的位置和时间无关紧要。重要的是,这只适用于一次性效果,如CCParticleExplosion。一次性效果的持续时间属性设置为正值。
如果您遇到帧率问题,我敢打赌,totalParticles(Glyph Designer中的最大粒子数)值设置得太高。您可能只运行了5个粒子效果,但每个粒子系统可能会产生数百个粒子。
每个粒子的大小(分别是它的纹理)也会对性能产生很大的影响。