1

我正在尝试在 cocos2d 中添加粒子轨迹效果,我设法通过将 CCParticleSystemQuad 发射器作为子元素添加到移动的精灵来实现。但我观察到这个发射器最终没有被释放。

如果我将此发射器添加到同一个精灵,但保持静止并且根本不移动,发射器确实会被释放。

我不知道为什么会这样。。

代码有点像这样..

CCParticleSystemQuad *emitter = [[[CCParticleSystemQuad alloc] initWithFile:@"myEffect.plist"] autorelease];
emitter.positionType = kCCPositionTypeFree;
emitter.autoRemoveOnFinish = YES;
[movingSprite addChild:emitter z:movingSprite.zOrder + 1000];
4

1 回答 1

2

确保你打电话[emitter removeFromParentAndCleanup:YES];

这是我的类似问题之一

找出保留对象的位置,按照 Morion 在上述线程中的回答。

快速解决方案:

CCParticleSystemQuad *emitter = [CCParticleSystemQuad particleWithFile:@"myEffect.plist"];
emitter.positionType = kCCPositionTypeFree;
emitter.autoRemoveOnFinish = YES;
[movingSprite addChild:emitter z:movingSprite.zOrder + 1000];

//To remove
[emitter stopSystem];
[emitter removeFromParentAndCleanup:YES];
于 2013-04-20T04:45:58.923 回答