sprite

cocos2d-x 创建精灵的五种方法

方法一:直接创建精灵        方法二:参数 图片名称 矩形区域        方法三: 利用帧缓存中的一帧的名称声称一个对象   方法四:利用另外一帧生成一个精灵对象        方法五:利用纹理

我所理解的cocos2dx - 精灵

用sprite绘制一个矩形区域

精灵可以绘制一张纹理或者上面的一个矩形区域,最终会关联一个texture2d对象和上面的一个区域。createWithTexture不使用TextureCache创建纹理,所以需要额外的小心它的生命周期。

精灵可以通过setTexture来修改关联的纹理,用SpriteFrame来高效播放精灵动画。

V3F_C4B_T2F_Quad结构体

所有对sprite绘制属性的修改最终都是表现为对一个V3F_C4B_T2F_Quad结构体变量quad的修改。此结构拥有4个v3f_c4b_t2f顶点属性(坐标vec3,颜色color4B和纹理坐标tex2F)。opengl es不支持多边形图元,所以一个quad图元实际会分为2个三角形。对于图元修改,我们只需要修改每一个顶点的相关数据即可。

使用QuadCommand进行绘制

Cocos2d-x精灵的性能优化——使用纹理图集和精灵帧缓存

使用纹理图集

纹理图集(Texture)也称为精灵表(Sprite Sheet)

使用纹理图集的优点:

1、减少文件读取次数,读取一张图片比读取一推小文件要快

2、减少OpenGL ES绘制调用并且加速渲染
OpenGL ES 1.1仅仅能够使用2的n次幂大小的图片(即宽度或者高度是2、4、8、64…)。
如果采用小图片OpenGL ES1.1会分配给每个图片2的n次幂大小的内存空间,即使这张图片达不到这样的宽度和高度也会分配大于此图片的2的n次幂大小的空间。那么运用这种图片集的方式将会减少内存碎片。
虽然在Cocos2d-x v2.0后使用OpenGL ES2.0,它不会再分配2的几次幂的内存块了,但是减少读取次数和绘制的优势依然存在。

3、减少内存消耗。

4、Cocos2d-x全面支持Zwoptex和TexturePacker,所以创建和使用纹理图集是很容易的

Cocos2d-x精灵的性能优化

Cocos2d-x中的Node

节点是cocos2d-x游戏引擎中的重要元素,是其他重要游戏元素的基类,例如,场景Scene,图层Layer,菜单Menu和精灵sprite都是继承节点类Node. Node类包含了一些基本的属性、节点相关、Action动作的执行、以及定时器等相关的操作。 当然Node也有父类,其父类为Ref。

节点的主要特点:

— 他们可以包含其他的节点对象(addChild, getChildByTag, removeChild, etc)
— 他们可以安排定期的回调(schedule, unschedule, etc)
— 他们可以执行一些动作(runAction, stopAction, etc)
— 子类节点通常意味着(单一的/所有的)
— 重写初始化资源并且可以安排回调
— 创建回调来操作进行的时间
— 重写“draw”来渲染节点
— 节点的属性有:位置、缩放、旋转、倾斜、锚点、内容大小、可见性

节点常用的一些操作函数及新的功能特性。

(1)节点的属性:位置、缩放、旋转、倾斜、锚点、内容大小、可见性

//  
/** 
 * 位置Position 
 *     设置节点的坐标(x,y).在OpenGL中的坐标 
 *     增加3D坐标 
 *     增加标准化坐标设置 
 */  

「Unity2D」使用Unity创建一个2D游戏系列-2

本文由泰然教程组成员 betterdenger 翻译,原文请参阅「Adding and displaying a background

添加并显示背景

本章我们使用在上一章节创建的空项目, 我们要学习如何添加一个背景以及一些云彩。

添加背景

首先添加一个静态的背景,我们用下面这张图:

background

(右键保存本图)

从"Textures"文件夹导入图片。简单的把文件拷贝进去或者从文件窗口拖过去。

现在先不管导入设置。

在Unity场景里创建一个新的Sprite游戏对象。

同步内容
--电子创新网--
粤ICP备12070055号