我正在开发cocos2d-x 3.2的游戏,我的应用程序内存随着游戏的进展而增加&在cocos2d-x 3.2的场景替换时,似乎资源内存没有释放,请帮助
发布于 2015-11-12 15:48:35
您可以使用
Director::getInstance()->purgeCachedData();以释放TextureCache、SpriteFrameCache等中未使用的资源。
发布于 2016-10-11 21:27:38
如果不看一些代码,这将很难正确回答,但我将冒险猜测两个。希望这能有所帮助。
一个常见的错误是没有使用所有Node相关类在默认情况下都具有的::create()函数。使用::create()确保使用了Ref,这意味着对象将被引用计数,并且在替换场景后内存几乎会自动释放。因此,如果在代码中的某个地方使用new Scene() (并且没有在析构函数中释放它)而不是Scene::create(),那么就会出现内存泄漏。
对于Sprite、Node、Action,基本上任何东西都是一样的。始终使用与其相关的::create()静态函数。如果您继承了这些类中的任何一个,则可以通过将CREATE_FUNC(Player)放在类定义的头部中来轻松地创建自己的create()方法。在本例中,Player是您创建的扩展现有类的类名,如Node或Sprite。
https://stackoverflow.com/questions/31472509
复制相似问题