CCTexture2D CCSpriteBatchNode CCTextureCache CCSpriteFrameCache 分析

Posted davidsu33

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CCTexture2D CCSpriteBatchNode CCTextureCache CCSpriteFrameCache 分析相关的知识,希望对你有一定的参考价值。

CCTexture2D 是对OpenGL中二位纹理的类包封,可以通过图片和内存数据来生成对应的二维纹理,实际的纹理图片可能会比生成的纹理图片要小,生成的纹理图片的大小为不小于其大小的2的N次方。还需要注意的是生成的纹理内容与纹理图片是倒着的。所以在纹理对应坐标的时候咱们需要将Y轴倒过来,否则纹理图片的对应会出错。


CCSpriteBatchNode是对CCSprite节点的批处理,可以对一组精灵节点进行一次绘制。而且批处理的精灵节点是可以共享纹理数据的,这样不仅仅节省了内存空间,也提高了绘制的效率,对于游戏中出现的怪或者是敌人可一次进行处理。


CCTextureCache是一个单体纹理缓冲类,可以通过增加图片数据来生成对应的词典,根据文件名称来返回纹理对象(CCTexture2D)。可以通过纹理数据的共享来节省程序的内存开销。


CCSpriteFrameCache主要是针对帧缓冲,主要用于动画,特别需要注意的是CCSpriteFrameCache将会缓冲滞留(也就是调用CCObjec的retain()接口来增加对象的引用计数),因此其内存开销并不会在程序中自动释放,如果一旦某个动画帧缓冲不在使用,需要我们调用CCSpriteFrameCache::sharedSpriteFrameCache()->removeUnusedSpriteFrame()来移除相应的动画。

以上是关于CCTexture2D CCSpriteBatchNode CCTextureCache CCSpriteFrameCache 分析的主要内容,如果未能解决你的问题,请参考以下文章

Cocos2D-iphone 在 CCTexture2D 中使用 drawAtpoint 函数出现问题

如何将 CCSpriteFrame 转换为 CCTexture2D (Cocos2d)

Cocos2D:从文档目录中的文件创建精灵

1.05 精灵

cocos2d学习笔记

cocos2d错误:没有这样的文件或目录