首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cocos2d-x 3.2中的Replacescene时内存未释放

cocos2d-x 3.2中的Replacescene时内存未释放
EN

Stack Overflow用户
提问于 2015-07-17 17:25:40
回答 2查看 512关注 0票数 7

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

EN

回答 2

Stack Overflow用户

发布于 2015-11-12 15:48:35

您可以使用

代码语言:javascript
复制
Director::getInstance()->purgeCachedData();

以释放TextureCache、SpriteFrameCache等中未使用的资源。

票数 0
EN

Stack Overflow用户

发布于 2016-10-11 21:27:38

如果不看一些代码,这将很难正确回答,但我将冒险猜测两个。希望这能有所帮助。

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

对于SpriteNodeAction,基本上任何东西都是一样的。始终使用与其相关的::create()静态函数。如果您继承了这些类中的任何一个,则可以通过将CREATE_FUNC(Player)放在类定义的头部中来轻松地创建自己的create()方法。在本例中,Player是您创建的扩展现有类的类名,如NodeSprite

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31472509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档