在Cocos 2d中替换CCScene时如何释放内存分配?

时间:2014-12-18 05:25:55

标签: ios cocos2d-x cocos2d-x-3.0

我在特定场景中有Sprite,Spine骨架,Audio对象。当第一个场景进入然后是第二个场景时,我希望释放第一个场景完成的所有分配。

怎么做.. ??

非常感谢任何帮助!!

1 个答案:

答案 0 :(得分:1)

如果您释放了第一个场景,并且所有精灵和脊椎骨架都是addChild-ed到场景(或场景的孩子)而没有任何其他引用,则所有精灵和脊椎骨架将自动释放。不用担心那些。

如果您预装了音频效果,则应该卸载这些音频效果。

但精灵和脊椎骨骼的纹理不会自动释放。 TextureCache保留纹理以进一步加载。所以你应该逐个调用removeUnusedTextures或removeTexture / removeTextureForKey。

cocos2d::TextureCache::getInstance()->removeUnusedTextures();

How to Optimise Memory Usage”是调查内存使用情况和TextureCache的好文档。