当添加到移动的精灵时,CCParticleSystemQuad不会被释放



我试图在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];

相关内容

  • 没有找到相关文章

最新更新