cocos2dx CCTextureCache 、CCSpriteBatchNode 、CCSpriteFrameCache区别
来源:互联网 发布:js获取a标签href 编辑:程序博客网 时间:2024/05/16 15:47
其实这些资料都来源于网络,把它整合一下 也方便自己记忆
CCTexture2D 通过图片 文本 和 数据生成OpenGL 2D纹理。 它是一个纹理贴图 都被缓存于CCTextureCache
CCTexture2D* cache =CCTextureCache::sharedTextureCache()->addImage("hero.png"); CCSprite* sprite =CCSprite::spriteWithTexture(cache);
所以 CCTextureCache它相当于CCTexture2D的容器,是内存池,用来缓存CCTexture2D对象的,它内部有一个字典CCMutableDictionarym_pTextures,key为图片的名称,值是CCTexture2D。所以游戏内要避免名字相同的图片。
CCSpriteBatchNode
为了降低渲染批次而建立的一个专门管理精灵的类。它是批处理绘制精灵,主要是用来提高精灵的绘制效率的,需要绘制的精灵数量越多,效果越明显。限制:加入到cc.SpriteBatchNode中的cc.Sprite必须使用同一张纹理图
因为cocos2d-x采用opengles绘制图片的,opengles绘制每个精灵都会执行:open-draw-close流程。而CCSpriteBatchNode是把多个精灵放到一个纹理上,绘制的时候直接统一绘制该texture,不需要单独绘制子节点,这样opengles绘制的时候变成了:open-draw()-draw()…-draw()-close(),节省了多次open-close的时间。
CCSpriteBatchNode内部封装了一个CCTextureAtlas(纹理图集,它内部封装了一个CCTexture2D)和一个CCArray(用来存储CCSpriteBatchNode的子节点:单个精灵)。注意:因为绘制的时候只open-close一次,所以CCSpriteBatchNode对象的所有子节点都必须和它是用同一个texture(同一张图片):
它是管理CCSpriteFrame的内存池,跟CCTextureCache功能一样,不过跟CCTextureCache不同的是,如果内存池中不存在要查找的帧,它会提示找不到,而不会去本地加载图片。它的内部封装了一个字典:CCDictionary*m_pSpriteFrames,key为帧的名称。CCSpriteFrameCache一般用来处理plist文件(这个文件指定了每个独立的精灵在这张“大图”里面的位置和大小),该文件对应一张包含多个精灵的大图,plist文件可以使用TexturePacker制作。
- cocos2dx CCTextureCache 、CCSpriteBatchNode 、CCSpriteFrameCache区别
- CCTextureCache CCSpriteFrameCache CCSpriteBatchNode
- CCTexture2D CCSpriteBatchNode CCTextureCache CCSpriteFrameCache 分析
- cocos2d-x之CCTextureCache、CCSpriteFrameCache、CCSpriteBatchNode用法总结
- CCSpriteBatchNode 和 CCSpriteFrameCache 的区别
- cocos2d-x CCSpriteBatchNode和CCSpriteFrameCache区别
- CCSpriteBatchNode和CCSpriteFrameCache的区别及用法
- CCTextureCache 和 CCSpriteFrameCache
- CCSpriteFrameCache和CCTextureCache
- CCSpriteFrameCache、CCTextureCache的使用
- CCTextureCache和CCSpriteFrameCache
- 第二节,CCSpriteBatchNode CCSpriteFrameCache
- 预加载+CCSpriteBatchNode + CCSpriteFrameCache
- Cocos2d-x中的 CCSpriteFrameCache , CCTextureCache的使用
- cocos2d-x中的缓存CCTextureCache、CCSPriteFrameCache、CCAnimationCache
- cocos2d-x中的缓存CCTextureCache、CCSPriteFrameCache、CCAnimationCache
- cocos2dx教程之CCTextureCache
- cocos2dx之CCTextureCache
- python进阶学习笔记(一):打开文件
- 杭电ACm水仙花数2010谁能帮忙分析一下两段代码的区别;第二个通不过啊
- WIN7下的VS2008在调试OpenCV_2.3.1的程序时报错丢失tbb_debug.dll的解决办法~
- servlet生命周期及web.xml配置
- Js Map
- cocos2dx CCTextureCache 、CCSpriteBatchNode 、CCSpriteFrameCache区别
- 蓝桥杯--数字排列
- 28. Implement strStr()
- 条码系统的 存储过程 示例
- PowerDesigner PDM生成OOM问题?
- 杭电ACm求数列的和2009
- 计算机网络——8.IPv6基础
- hdu3047 Zjnu Stadium(简单的路径压缩)
- python select.epoll