`
eric_weitm
  • 浏览: 242730 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

cocos2dx内存相关注意

    博客分类:
  • c++
 
阅读更多

cocos2dx中内存管理要注意的地方

1、工厂函数create中要注意使用autorelease,体现 谁取得谁释放 的原则

 

2、如果是直接new出来的,add进入到别的node之后,注意release一次(因为new时引用计数是1),这样在父类进行release时刚好可以释放掉

3、CCArray CCDictionary 实现了对CCObject的管理,使用之前记得数组本身要retain,否则数组会被干掉;如果obj只在数组中被管理,obj被放入后记得release一下(因为在放入数组时已经retain了一次)

 

初始化

    CCArray *tmpArray = CCArray::array();

    tmpArray->retain();// 因为ccArray是autorelease的,所以这里必须retain

 

增加元素

tmpArray>addObject(元素)

 

删除

    tmpArray->removeAllObjects();

    tmpArray->release();

 

使用工厂方法返回的指针,需要自己首先retain一下,这样就不会内存出问题

 

set指针时的注意

void someclass::setObj(CCObject obj)

{

  obj->retain();

 this->obj->release();

this->obj = obj;

}

 

注意一定是先retain后release,防止同一个obj引发的崩溃

 

 

分享到:
评论

相关推荐

    Cocos2D-X2.2.3学习笔记3(内存管理)

    在Cocos2D-X2.2.3的学习过程中,内存管理是至关重要的一个环节,它直接影响到游戏的性能和稳定性。Cocos2D-X是一个跨平台的2D游戏开发框架,使用C++作为主要编程语言,并支持Lua和JavaScript。本笔记将深入探讨Cocos...

    经典版本 方便下载 源码 旧版本 3.8 官网找不到了 cocos2d-x-3.8.zip

    在学习和使用cocos2d-x 3.8时,开发者需要注意与最新版本的差异,例如API的变化、新功能的缺失等。同时,由于3.8是旧版本,可能不再受到官方的维护和支持,所以在解决特定问题时可能需要查阅旧的文档或社区论坛。 ...

    cocos2d-x嵌入webview

    《cocos2d-x嵌入Webview:游戏与网页交互的深度解析》 在移动游戏开发领域,cocos2d-x作为一个广泛使用的2D游戏引擎,以其高效、跨平台的特性受到众多开发者青睐。然而,游戏往往需要与网页进行交互,以实现动态...

    cocos2d 2.0与UIKit结合的例子

    5. **性能优化**:在Cocos2d和UIKit的混合使用中,需要注意性能问题。尽量减少UIKit视图的数量,避免过度绘制,以及合理地处理视图的生命周期,如在不使用时移除它们以节省内存。 6. **响应式设计**:确保在不同...

    cocos2d-x版本的对对碰代码

    【cocos2d-x版本的对对碰代码】是一个基于Cocos2d-x游戏引擎实现的经典消除类游戏项目,它将原有的Cocos2d版本的对对碰游戏移植到了跨平台的Cocos2d-x框架下。Cocos2d-x是Cocos2d的C++扩展,支持iOS、Android、...

    cocos2d播放视频方法相关

    本文将详细介绍如何在Cocos2d中实现视频播放,以及相关的步骤和技术要点。 首先,我们需要了解Cocos2d的基础知识。Cocos2d是一个开源的游戏开发框架,基于Python、Objective-C和C++等语言实现,它提供了丰富的2D...

    cocos2d-x-2.1.4.zip

    然而,值得注意的是,随着时间的推移,cocos2d-x经历了多次更新和改进,新版本可能引入了更多的优化和新特性,如性能提升、新的UI系统、多线程支持等。因此,对于现代游戏开发,可能需要结合最新的cocos2d-x版本进行...

    cocos2d-x 显示中文

    5. **内存管理**:注意内存管理,确保在不再需要字体时释放资源。使用`Label::release()`或`std::shared_ptr`来管理`Label`对象的生命周期。 6. **测试与调试**:在不同平台上测试你的应用,因为每个平台对字体和...

    cocos2d-x手机游戏开发

    在实际开发中,理解cocos2d-x的渲染系统和内存管理同样重要。渲染系统采用OpenGL ES进行图形绘制,优化了性能,而内存管理则需要注意对象生命周期和引用计数,防止内存泄漏。 最后,为了将游戏发布到Android平台,...

    Cocos2d-x背景音乐播放

    本文将深入探讨如何在Cocos2d-x中实现背景音乐的播放,并提供相关的示例代码供初学者参考。 1. **Cocos2d-x的音频支持** Cocos2d-x提供了强大的音频处理功能,通过`SimpleAudioEngine`类,开发者可以方便地进行...

    cocos2d-x 贪食蛇源码

    7. **内存管理**:cocos2d-x使用引用计数的内存管理方式,开发者需要注意对象的生命周期和及时释放不再使用的资源,以避免内存泄漏。 8. **数据结构**:游戏中的蛇、食物等对象的状态通常用数据结构来存储,如链表...

    cocos2d-x2.04横版格斗游戏

    8. **性能优化**:Cocos2d-x针对移动设备进行了优化,如内存管理和多线程支持,以确保游戏在各种设备上流畅运行。 在导入和运行这个横版格斗游戏项目时,你需要: 1. **安装Cocos2d-x**:首先,从官方网站下载并...

    精通COCOS2D-X游戏开发进阶卷

    9. **性能优化**:Cocos2d-x允许开发者进行性能监控和优化,如帧率控制、内存管理等。 10. **扩展性和社区支持**:拥有庞大的开发者社区,提供丰富的第三方库和教程,方便开发者扩展功能和解决问题。 本书《精通...

    cocos2d-lua 实现富文本

    Cocos2d-lua 提供了资源加载和释放的机制,避免内存泄漏和资源浪费。 7. **跨平台兼容性** Cocos2d-lua 的跨平台特性使得富文本功能可以在多个平台上运行,包括 iOS、Android、Windows 等。但需要注意的是,不同的...

    Cocos2d-JS中使用Cocos Studio资源05:帧动画

    在Cocos2d-JS开发过程中,Cocos Studio是一个强大的工具,用于创建和编辑游戏资源,包括场景、精灵、动作以及动画。本教程将聚焦于如何在Cocos2d-JS项目中导入并使用Cocos Studio导出的帧动画资源。 1. **Cocos2d-...

    cocos2d-js 简陋的排行榜

    6. **性能优化**:由于cocos2d-js 运行在浏览器环境中,需要注意性能优化。比如减少不必要的渲染,使用纹理 atlas 减少内存占用,合理使用缓存,避免大量计算和操作DOM。 在提供的"ui"目录中,可能包含了用于创建...

    Cocos2d-x CCTableiew修改不同Size的cell

    Cocos2d-x是一款流行的开源游戏开发框架,广泛用于创建2D游戏、应用程序以及互动内容。在Cocos2d-x中,CCTableView是一个强大的组件,用于展示可滚动的列表数据,类似于iOS中的UITableView或者Android的ListView。在...

    Cocos2d-x实战_Lua卷 _第2版

    《Cocos2d-x实战_Lua卷_第2版》是一本专为游戏开发者准备的指南,主要聚焦于使用Cocos2d-x框架与Lua语言进行游戏开发。Cocos2d-x是一个开源的游戏开发框架,它允许开发者用C++、Lua或者JavaScript编写游戏,并且可以...

    cocos2d-x 3.0 骨骼动画 demo

    本篇文章将围绕“cocos2d-x 3.0 骨骼动画 demo”进行深入探讨,包括其工作原理、实现方法以及在实际项目中的应用注意事项。 一、骨骼动画简介 骨骼动画是一种基于骨骼和蒙皮的技术,通过模拟人体或物体的骨骼结构...

Global site tag (gtag.js) - Google Analytics