0

我在我的游戏中为我的足球创建了一个火焰粒子系统,我想知道我应该在哪里放置优化代码(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 个足球。

4

1 回答 1

1

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

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

每个粒子的大小(分别是其纹理)也对性能有很大影响。

于 2012-06-14T22:45:59.453 回答