我试图在cocos2d中添加粒子跟踪效果,我通过添加CCParticleSystemQuad发射器作为移动精灵的子元素来做到这一点。但是我观察到这个发射器最终没有被释放。
如果我将这个发射器添加到相同的精灵中,但保持它静止不动,发射器确实会被释放。
我不明白为什么会发生这种事。
代码有点像这样…
CCParticleSystemQuad *emitter = [[[CCParticleSystemQuad alloc] initWithFile:@"myEffect.plist"] autorelease];
emitter.positionType = kCCPositionTypeFree;
emitter.autoRemoveOnFinish = YES;
[movingSprite addChild:emitter z:movingSprite.zOrder + 1000];
确保您呼叫了[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];