说到cocos2d,就不得不说CCSpriteBatchNode
用CCSpriteBatchNode的好处:
1、减少OpenGL ES的bind call,这里简单说下图片的载入。当一张图片要显示时,首先它会被转为texture,之后装入内存,因为GPU大多认识解压后的图片(png是压缩格式的图片,GPU也可以处理一些压缩格式的,比如PVRTC),然后通过OpenGL ES把这张图片画到屏幕上,当一个场景载入大量图片时,势必会多次调用OpenGL ES,这样GPU都压力就会很大,帧数就掉下来了。使用CCSpriteBatchNode可以一次性的把当前场景所有的图片都载入进来,从而减少大量GPU的运算,帧数自然就高了
2、减少内存占用,其实这一点现在已经不是最重要的了,因为3gs以后的设备都支持NPOT(NON POWER OF TWO)了。老GPU保存texture的时候只能存为power-of-two的大小,也就是你都图片是50x50像素的,最后在内存中最后就变为64x64的了,那么64
* 64 - 50 * 50这么大块的内存相当于浪费掉了(实际上,CPU和GPU操作图片内存地址不是一个,所以当GPU操作图片的时候,这个图片还要被考到GPU能操作的内存区域,所以那部分浪费都内存还会再被拷贝一便)。而使用texture atlas就没必要担心这个了,texture atlas让你把一个一个的图片放到一起,然后一次性载入内存,这样那些每张图片都浪费一点的内存就会大大减少了。不过在cocos2d1.1中,默认只要设备支持NPOT,就会自动开启NPOT,我现在用的版本是1.0.0,在ccConfig.h中看到:
@deprecated This value will be removed in 1.1 and NPOT textures will be loaded by default if the device supports it.
所以科技的发展多么重要,让我们需要考虑的越来越少了,哈哈!
其实现在最重要的一点还是第一条
制作texture atlas比较好用的软件有:TexturePacker,链接我就不放了,这东西网上一搜就找到了
CCSpriteBatchNode的使用也很简单,首先用CCSpriteFrameCache载入frame file([CCSpriteFrameCachesharedSpriteFrameCache] addSpriteFramesWithFile:@"scene1atlas.plist"]),是一个plist文件,使用TexturePacker创建texture
atlas的时候会自动生成,然后创建[CCSpriteBatchNode batchNodeWithFile:@"scene1atlas.png"]CCSpriteBatchNode对象并添加到CCLayer中,然后CCSprite通过- (id) initWithSpriteFrame:(CCSpriteFrame*)spriteFrame创建对象,最后CCSpriteBatchNode对象
addChild:CCSprite对象即可
分享到:
相关推荐
cocos2d 学习笔记
自己记录的Cocos2d-x学习笔记,希望能够帮助新手,快速入门,掌握cocos2d-x的开发
【吼吼睡cocos2d学习笔记】第七章 - 4个很酷的类 代码
cocos2d的学习资料,一本比较经典的cocos2d开发书,适合cocos2d/cocos2d-x的入门
资源名称:Cocos2d-x实战:JS卷——Cocos2d-JS开发内容简介:本书是介绍Cocos2d-x游戏编程和开发技术书籍,介绍了使用Cocos2d-JS中核心类、瓦片地图、物理引擎、音乐音效、数据持久化、网络通信、性能优化、多平台...
cocos2d-x学习笔记\cocos2d-x学习笔记(17)--简单游戏实例1--双枪手
cocos2d入门 cocos2d入门 cocos2d入门 cocos2d入门 cocos2d入门 cocos2d入门
Cocos2D-X2.2.3学习笔记3(内存管理) http://blog.csdn.net/hucblog/article/category/2242181
该资源主要用于cocos2d-x中Value与json字符串的相互转换,提供从json文件读取为cocos2d::Value,cocos2d::Value写入到文件,cocos2d::Value转换为json字符串,json字符串转换为cocos2d::Value。json字符串转换成cocos...
Cocos2D-X开发学习笔记-渲染框架之布景层类的使用示例 教程地址:http://blog.csdn.net/yangyu20121224/article/details/9397075
cocos2d-x学习资源汇总
Cocos2d-x学习笔记(三)—— 坐标系
我自己的cocos2d学习资料源码-我自己的cocos2d学习资料源码
自己在学习的时候记得笔记,希望对大家有帮助,如有错误期待指出!
cocos2d学习资源
Cocos2d-x学习笔记——完全掌握C++ API与游戏项目开发.zip
cocos2d是一个基于MIT协议的开源框架,用于构建游戏、应用程序和其他图形界面交互应用。可以让你在创建自己的多平台游戏时节省很多的时间。 Cocos2D也拥有几个主要版本,包括Cocos2D-iPhone、Cocos2D-X,以及被社区...
Cocos2D-X开发学习笔记-渲染框架之图形的绘制 教程地址:http://blog.csdn.net/yangyu20121224/article/details/9748001
cocos2d-x-2.1.5
老G的cocos2d-x学习笔记 第一部分:基本图形绘制 第二部分:字符串绘制 第三部分:绘制图片 cocos2d-x学习笔记04:简单动画 cocos2d-x学习笔记06:如何将win32移植到android ....