CCTexture2D CCSpriteBatchNode CCTextureCache CCSpriteFrameCache 分析

来源:互联网 发布:淘宝号怎样会被冻结 编辑:程序博客网 时间:2024/05/17 01:41

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


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


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


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

原创粉丝点击