在cocos2d-x 3.2

时间:2015-07-17 09:25:40

标签: memory-management cocos2d-x-3.0

我正在使用cocos2d-x 3.2开发游戏,我的应用程序内存随着游戏的进展而增加在cocos2d-x 3.2中更换场景时似乎没有释放资源内存,请帮忙

2 个答案:

答案 0 :(得分:0)

您可以使用

Director::getInstance()->purgeCachedData();

在TextureCache,SpriteFrameCache等中释放那些未使用的资源

答案 1 :(得分:0)

如果没有看到某些代码,这将难以正确回答,但我会冒一两个猜测。希望这会有所帮助。

一个常见的错误是默认情况下不使用::create()个所有Node相关类的函数。使用::create()可确保使用Ref,这意味着对象将被引用计数,并且在替换场景后内存几乎会自动释放。因此,如果您在代码中的某处使用new Scene()(并且您不会在析构函数中释放它)而不是Scene::create(),那么您就会在那里发生内存泄漏。

SpriteNodeAction基本上都是如此。始终使用相关的::create()静态函数。如果您继承自这些类中的任何一个,则可以通过在标题中的类定义中放置create()来轻松创建自己的CREATE_FUNC(Player)方法。在这种情况下,Player是您创建的类的名称,用于扩展现有类,例如NodeSprite