位置: 编程技术 - 正文

什么时候用removeUnusedSpriteFrames和removeUnusedTextures(什么时候用热毛巾敷眼睛最好)

编辑:rootadmin

推荐整理分享什么时候用removeUnusedSpriteFrames和removeUnusedTextures(什么时候用热毛巾敷眼睛最好),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:什么时候用remembered,什么时候用热毛巾敷眼睛最好,什么时候用remembered,什么时候用remember什么时候用have,什么时候用reminding,什么时候用reminding,什么时候用reminding,什么时候用热毛巾敷脸最好,内容如对您有帮助,希望把文章链接给更多的朋友!

什么时候用removeUnusedSpriteFrames和removeUnusedTextures(什么时候用热毛巾敷眼睛最好)

在一个使用cocos2d的项目中,当切换关卡或者说切换layer时,经常需要释放上一个关卡或者layer中使用的图片资源,这个时候需要用到下面两个函数:

[CCSpriteFrameCache sharedSpriteFrameCache] removeUnusedSpriteFrames];[CCTextureCache sharedTextureCache] removeUnusedTextures];注意:一定不要忘了调用CCSpriteFrameCache的removeUnusedSpriteFrames函数,因为每一个 CCSpriteFrame实例都retain了一个CCTexture实例,如果不调用该函数,被retain的CCTexture实例永远得不到释放 (除非强制释放该CCTexture实例)。还有,函数的调用顺序应该时先调用CCSpriteFrameCache的 removeUnusedSpriteFrames函数,再调用CCTextureCache的removeUnusedTextures函数。 一般来说,释放系统资源的简单方法是在每个CCLayer的dealloc函数中调用上述两个函数(如果你在第二个CCLayer的初始化方法中调用这两 个方法是没法真正释放所有资源的,因为replaceScene函数是先初始化第二个scene,再release第一个scene),但是一定记得要在 [super dealloc];函数之后调用,因为CCNode的dealloc函数才是最终释放所有children的地方。但是,在每个CCLayer的dealloc函数中调用上述两个函数释放资源会出现一个问题,即导致某一小段时间内(第二个scene初始化完毕但是第一 个scene还没被释放的时间段)内存达到一个峰&#;,有可能会收到内存警告甚至是程序crash。为了避免这种情况,最好是在关卡切花或者说切换 layer时,做一个loadingLayer来过渡。

cocos2dx 3.4 lua加密 setXXTEAKeyAndSign 转载来源于:

cocos2dx 将数据库写入沙盒 userDBName=FileUtils::getInstance()-fullPathForFilename(USER.db);gameDBName=FileUtils::getInstance()-fullPathForFilename(GAME.db);std::stringwritepath=FileUtils::getInstance()-getWritablePath();std::s

Cocos2d-x游戏开发学习笔记 Cocos2d-x_3.X开发环境搭建——EclipseforAndroid首先要感谢网络上的一些朋友,虽然他们并没有主动来手把手教我。感谢他们的共享精神和付出!由于人数众

本文链接地址:https://www.jiuchutong.com/biancheng/368893.html 转载请保留说明!

上一篇:android 接入移动基地SDK(安卓接入点)

下一篇:cocos2dx 3.4 lua加密 setXXTEAKeyAndSign

免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络