《我所理解的cocos2dx》第六章 精灵

精灵 Sprite

6.1 精灵绘制区域

精灵绘制区域可能来自纹理上的一部分,或者只是一个与纹理无关的纯色矩形
《我所理解的cocos2dx》第六章 精灵

6.1.1 V3F_C4B_T2F_Quad结构体

对sprite绘制的修改,表现为对这个结构体的修改,结构体记录了一个矩形图元的4个顶点属性,坐标颜色纹理坐标

6.1.2使用QuadCommand绘制

方便进行批绘制

6.3 Alpha预乘

有透明度的物体叠加
《我所理解的cocos2dx》第六章 精灵这通常在运行时发生,为了提高性能,Alpha预乘被提出
它将RGB通道的值保存为自身实际的颜色乘以Alpha通道的值之后的值,这样运行时就只需要计算背景部分的颜色以进行组合了,即上面的后半部分

实际图片的存储格式并不支持预乘,需要通过程序的支持实现,

  1. 设置sprite的BlendFunc
  2. 构造Image时告知以及预乘了
  3. 使用Texture2D提供的静态方法

缺点:
预乘减少了颜色值的精度,当颜色被还原时,会出现比较明显的质量损失

6.4 精灵表

俗称合图 .plist 和.png文件

6.5 精灵动画

SpriteFrameCache 中的SpriteFrame

关键帧和骨骼动画

关键帧:
存储空间大,可以表现丰富的特效

骨骼动画:
存储空间小,擅长处理人物动作局部的变化

《我所理解的cocos2dx》第六章 精灵