我正在尝试在 cocos2d 中添加粒子尾迹效果,我设法通过将 CCParticleSystemQuad 发射器作为子级添加到移动 Sprite 来实现。 但我观察到这个发射器最终没有被释放。
如果我将这个发射器添加到同一个 sprite,但保持它静止并且根本不移动,发射器会被释放。
我不知道为什么会这样..
代码有点像这样..
CCParticleSystemQuad *emitter = [[[CCParticleSystemQuad alloc] initWithFile:@"myEffect.plist"] autorelease];
emitter.positionType = kCCPositionTypeFree;
emitter.autoRemoveOnFinish = YES;
[movingSprite addChild:emitter z:movingSprite.zOrder + 1000];
最佳答案
确保你调用了[emitter removeFromParentAndCleanup:YES];
这是我的一个 similar question
找出保留对象的位置,按照 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];
关于ios - 添加到移动 Sprite 时,CCParticleSystemQuad 未被释放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16116594/