Cocos2d-x精灵

在Cocos2d-x中,精灵用Sprite类表示,它将一张纹理的一部分或者全部矩形区域绘制在屏幕上。我们可以使用精灵表来减少OpenGL ES绘制的次数

Sprite实现了TextureProtocol接口通过指定一张纹理及该纹理上的一个区域,就可以创建一个Sprite对象。

我们可以通过setTexture方法来动态修改Sprite关联的纹理,从而实现精灵动画。也可以使用SpriteFrame来高效地播放精灵动画。setTexture方法对新的texture执行retain操作,增加其引用计数

所有对Sprite绘制属性的修改(混合模式除外)最终都表现为对一个结构体类型变量quad的修改。

它用来记录一个矩形图元的4个顶点的顶点属性。由于OpenGL ES不支持多边形图元,实际是两个三角形

可以通过颜色混合和颜色叠加来影响OpenGL ES的绘制结果

颜色混合用来指定当前Sprite与颜色缓冲区中相同位置颜色值的混合方式。

精灵表

利用精灵表,我们可以对同一次绘制指定更多的顶点来减少绘制次数

SpriteFrameCache加载精灵表,缓存每一个精灵的信息。SpriteFrameCache通过解析配置文件将精灵表中的每个精灵存储为一个SpriteFrame对象,可以通过SpriteFrame创建一个Sprite

并不提供移除对应于Texture2D对象的功能。因为一个Texture2D对象可能被其他非SpriteFrame对象引用,所以,如果我们确定一个精灵表不再被使用,还应该移除对应的Texture2D对象