2011-11-16 64 views
1

我有一个简单的游戏结构与含有GameLayer和BackgroundLayer多个GameScenes。 GameLayer已将CCSprites添加到它。游戏中没有任何东西被移除或添加。取消分配层和精灵在cocos2d

我不能确定,以确保一切正常释放的最佳途径。我可以叫[GameScene release]到我改变场景所包含GameLayer和BackgroundLayer每次释放?是否释放GameScene释放所有包含的孩子?是否有系统的方法来释放cocos2d以确保你覆盖了所有内容?

回答

2

除非您发送保留或复制到cocos2d的节点之一,你不需要做任何事情。当您通过CCDirector replaceScene更改场景时,Cocos2D将为您清理该场景。

你也可以简单地开始使用ARC(自动引用计数),其中这些因素都是过去的事情了。为了能够做到这一点,你将不得不使用一个specially modified version of Cocos2D或者干脆使用Kobold2D, which supports ARC开箱。实际上,它在所有Kobold2D示例项目中都是默认启用的。

0

如果与节点类的方法创建的场景和层(一般cocos2d的任何节点)(即[CCscene节点]),你并不需要释放他们,因为他们是自动释放对象。不过我建议重写dealloc的到removeAllChildrenWithCleanup:TRUE

希望这有助于你