cocos2d用动作删除精灵

时间:2011-09-11 19:58:00

标签: cocos2d-iphone

我有这个设置:

图层有一个精灵作为孩子。精灵在其init方法中有这个代码:

id fadeOut = [CCFadeOut actionWithDuration:1.0f];
id death = [CCCallFunc actionWithTarget:self selector:@selector(die)];
self.deathAction = [CCSequence actions:fadeOut, death, nil];
[self runAction:deathAction_];

死亡动作调用精灵的'死'方法,其状态变为'死'。

在其更新方法中,图层会检查所有子项并删除那些“死”的子项:

[self removeChild:child cleanup:YES];

问题是子精灵在这一行之后仍然有2的零售额。据我所知,它由CCCallFunc保存。如果我省略了这个deathAction,而是删除了不透明度的精灵(当它们褪色时),代码正常工作并调用dealloc方法。

如何正确使用动作删除精灵?

1 个答案:

答案 0 :(得分:1)

您没有显示所有代码。但似乎你在保留对行动的参考,而你可能忘记释放它。

retainCount众所周知是不可靠的:link所以不要使用它,当然也不要指望它是准确的。