cocos2d-x 延续了cocos2d 和OC的引用计数的内存管理机制!

下面我们来看看CCDriectro类 CCPoolManager::sharedPoolManager()->push();
基础:我们要先熟悉  release  释放该内存!
 
    CCPoint *temp = new CCPoint(controlPoint.x, controlPoint.y);

m_pControlPoints->addObject(temp);

temp->release();

autorelease 是标记自动释放对象!下面会讲到自动内存释放 是怎么操作的

CCString* pRet = new CCString(str);

pRet->autorelease();

return pRet;

CCPoolManager::sharedPoolManager()->pop();  看看这两个方法!就相当于OC的内存释放池! 在CCDriectro中 每次去渲染的时候!都会去查看内存释放池的是否有内存计数为0的对象!如果有的话!就会去清理掉!释放内存!

其实我们在游戏开发中 注意一些内存的管理,对游戏有很大的帮助!一点一点积攒起来!就会对游戏内存吃紧的问题!有本质的解决!

1,如场景切换  在内存吃紧的情况下 我们可以选择 先清理一下缓存!

// 清空缓存 CCDirector::sharedDirector()->purgeCachedData();

2,场景切换也有注意的地方!场景切换 有压入式加入!替换式加入!

这里说一下压入场景(pushScene)和弹出场景(popScene)。它们都可以用来显示场景 和保留当前场景并显示新场景 ;不同的是它们不把旧场景从内存中释放掉,这样可以提高加 载速度,这时需要注意,如果内存不足以支撑的话,建议采用 replaceScene函数。

以上过程分为以下三步:

1)调用 CCDirector::sharedDirector()->purgeCachedData() 清空缓存。
2)新建场景。
3)调用 CCDirector::sharedDirector()->replaceScene(this) 替换新场景。Cocos2D-x 提供了场景间切换的特效,下一节将会介绍这些内容。

最新文章

  1. Java 浅析内部类
  2. nVivo highlight code中的文本
  3. 转:Python 的 Socket 编程教程
  4. 【JQGRID DOCUMENTATION】.学习笔记.3.Pager
  5. CentOS 6.5 更新163源(转载)
  6. C++异常:no matching function for call to "Matrix(Matrix&)"
  7. 2d网络游戏的延迟补偿(Lag compensation with networked 2D games)
  8. 关于feature创建Lookup列的BUG
  9. PHP+Apache+MySQL+phpMyAdmin在win7系统下的环境配置
  10. C语言中float,double类型,在内存中的结构(存储方式)
  11. Linux 关于解压
  12. mysqlbinlog 读取多个文件
  13. Codeforces Round #316 (Div. 2B) 570B Simple Game 贪心
  14. OpenStack 中的neutron-server启动过程
  15. java基础07 多线程
  16. python smtp 发邮件 添加附件
  17. Python学习(三十)—— Django框架简介
  18. headfirst python 03, 04
  19. 《HTTP - 状态码》
  20. 每一行代码都有记录—如何用git一步步探索项目的历史

热门文章

  1. 数据结构作业——brothers(二叉树)
  2. JS-流程控制汇集
  3. sql 中的运算符级别 如and or not
  4. 【原】ajaxupload.js上传报错处理方法
  5. MongoDB的安装及CURD操作
  6. nginx常用命令
  7. swfUpload 上传图片
  8. mssql禁用启用主键约束
  9. Linux python <tab>自动补全
  10. HTML5 LocalStorage 本地存储,刷新值还在