在一个使用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来过渡。

什么时候用removeUnusedSpriteFrames和removeUnusedTextures相关推荐

  1. cocos2dx-lua v3 -sprit 精灵详解

    尊重版权:文章转载自,http://www.2cto.com/kf/201505/398833.html  仅为个人使用. 精灵类是Sprite,它的类图如下图所示. Sprite类图Sprite类直 ...

  2. 场景切换时清理缓存!!CCTextureCache、CCSpriteFrameCache、CCAnimationCache

    cocos2d-x中存在3个缓存类,都是全局单例模式. 1.CCTextureCache 首先是最底层也最有效的纹理缓存CCTextureCache,这里缓存的是加载到内存中的纹理资源,也就是图片资源 ...

  3. 【cocos2dx面试题干货】--2021年最新cocos2dx面试干货(引擎篇)

                [cocos2dx面试题干货]--2021年度最新cocos2dx面试干货(引擎篇 )     大家好,我是Lampard~~   经过春招一番艰苦奋战之后,我终于是进入了心仪 ...

  4. Cocos2d开发系列

    Cocos2d开发系列(五) 分类:  iPhone开发2011-05-03 14:50  5020人阅读  评论(0)  收藏  举报 <Learn IPhone and iPad Cocos ...

  5. Cocos2dx + lua分享

    一. 闭包 闭包:使得内部函数能够调用外部函数的局部变量 local newrequire = function(folder) return function(file) Return requir ...

  6. cocos2dx 大地图分块加载的研究(初)

    本文转自http://blog.csdn.net/dinko321/article/details/46739563 项目里面需要加载一个很大的地图,目测最少是4096x4096的分辨率. 先不考虑什 ...

  7. cocos2d-x CCScrollView和CCTableView的使用(转载)

    转载请注明来自:Alex Zhou的程序世界,本文链接:http://codingnow.cn/cocos2d-x/1024.html //============================== ...

  8. Cocos2d-x之Sprite

    |   版权声明:本文为博主原创文章,未经博主允许不得转载. Sprite是Cocos2d-x游戏开发者最常用的类,用图片把精灵(Sprite)显示在屏幕上. 在游戏开发中,经常会遇到精灵(Sprit ...

  9. IOS 内存优化和调试技巧

    基础部分 1: 图片内存大小小结 a: 图片:是占用内存的大户,尤其是手机游戏图片资源众多.对图片资源在内存中占用量的计算成为J2ME游戏开发者的经常性工作,CoCoMo来解释一下如何计算图片在内存中 ...

最新文章

  1. ROS与深度相机入门教程:(1)Ubuntu16.04 在ROS中驱动Intel D435i深度相机
  2. MySQL基础之 恢复数据和数据库迁移
  3. opencv鼠标画路径点
  4. platform 平台驱动——设备的写作流程
  5. JavaScript | 使用提示从用户输入值
  6. [转]那些年我还不懂:IList,ICollection,IEnumerable,IEnumerator,IQueryable
  7. 这篇Cell里面的GSEA展示很不错!
  8. [Oracle]如何查看一个数据文件是否是自动扩展
  9. 【BZOJ4198】荷马史诗,贪心之k叉哈夫曼树
  10. Ribbon Finance将WBTC Theta Vault存款上限提高至250WBTC
  11. 接收list参数_Python 犄角旮旯--List
  12. 免登录实现CSDN博客代码复制(2021.9.26)
  13. Modis数据下载与处理(mrt、wget)
  14. arcgis海岸带_需科学划定海岸带基准地理边界
  15. 使用JOPENS-MSDP系统进行简单的地震定位
  16. 基于遗传算法的TSP和MTSP问题求解(python)
  17. 甘肃省学业水平测试计算机,甘肃省信息技术学业水平测试试卷
  18. jquery toggle_响应式WordPress主题教程–第6部分– jQuery Toggle菜单
  19. Android 个人中心界面实现
  20. WPF 基于 WER 注册应用崩溃无响应回调和重启方法

热门文章

  1. 华为鸿蒙系统发展时间2021年,耗时八年打造国产系统,华为鸿蒙OS质疑声不断,它才是真正未来...
  2. 4a怎么打开sqlserver_百元级别荣耀路由X3和小米路由4A,哪款真的香?
  3. pathinfo函数获取非UTF-8字符集文件名的问题
  4. mysql 多物理机_MySQL 5.6同一物理主机配置多实例
  5. Anylogic 仿真建模(一)
  6. 吴恩达深度学习5.3笔记_Sequence Models_序列模型和注意力机制
  7. 吴恩达深度学习1.4笔记_Neural Networks and Deep Learning_深层神经网络
  8. HP 380 G5安装CentOS7时找不到P400 raid卡
  9. 撸VUE弹窗组件 + 可编辑div 组件
  10. 启动tomcat后无法访问