一. Sprite类继承关系
精灵实际上可以说就是游戏总的主角,游戏中我们可操作的人物、宠物等待。我们所看到的精灵本质上就是一个静态的二维图。在Cocos2d-x里面精灵是用Sprite类来进行表示的,它可以用一张图片或者一张图片的一块矩形部分来定义。
二. 精灵创建
精灵提供了多个创建方式,具体如下:
1 | //创建一个无纹理Sprite,可以在创建后调用setTexture方法设置纹理。 更多... |
2 | static Sprite* create(); |
3 | |
4 | //指定图像文件名创建Sprite |
5 | static Sprite* create(const std::string& filename); |
6 | |
7 | //指定图像文件名及Rect参数创建Sprite |
8 | static Sprite* create(const std::string& filename, const Rect& rect); |
9 | |
10 | //指定Texture2D纹理对象创建Sprite |
11 | static Sprite* createWithTexture(Texture2D *texture); |
12 | |
13 | //指定Texture2D纹理对象及Rect参数创建Sprite |
14 | static Sprite* createWithTexture(Texture2D *texture, const Rect& rect, bool rotated=false); |
15 | |
16 | //指定Sprite帧(SpriteFrame)创建Sprite |
17 | static Sprite* createWithSpriteFrame(SpriteFrame *spriteFrame); |
18 | |
19 | //指定Sprite帧名称创建Sprite |
20 | static Sprite* createWithSpriteFrameName(const std::string& spriteFrameName); |
三. 常用属性方法
(1). 初始化相关
1 | //对未初始化的空Sprite执行初始化操作 |
2 | virtual bool init(void); |
3 | |
4 | //指定Texture2D纹理初始化Sprite,精灵大小即是纹理大小 |
5 | virtual bool initWithTexture(CCTexture2D *pTexture); |
6 | |
7 | //指定Texture2D纹理对象及Rect参数初始化Sprite |
8 | virtual bool initWithTexture(CCTexture2D *pTexture, const CCRect& rect); |
9 | |
10 | //指定Texture2D纹理对象、Rect参数及是否旋转初始化Sprite |
11 | virtual bool initWithTexture(CCTexture2D *pTexture, const CCRect& rect, bool rotated); |
12 | |
13 | //指定SpriteFrame初始化Sprite,SpriteFrame中的纹理(texture)和Rect参数将被用于此Sprite |
14 | virtual bool initWithSpriteFrame(CCSpriteFrame *pSpriteFrame); |
15 | |
16 | //指定Sprite帧名称初始化Sprite |
17 | virtual bool initWithSpriteFrameName(const char *pszSpriteFrameName); |
18 | |
19 | //指定图像文件初始化Sprite |
20 | virtual bool initWithFile(const char *pszFilename); |
21 | |
22 | //指定图像文件名及Rect参数初始化Sprite |
23 | virtual bool initWithFile(const char *pszFilename, const CCRect& rect); |
(2). 属性相关
1 | //设置节点的缩放(x) |
2 | virtual void setScaleX(float fScaleX); |
3 | //设置节点的缩放(y) |
4 | virtual void setScaleY(float fScaleY); |
5 | //设置节点的缩放(x,y) |
6 | virtual void setScale (float scaleX, float scaleY); |
7 | //设置节点在它父节点坐标系中的位置 |
8 | virtual void setPosition(const Vec2& pos); |
9 | virtual void setPosition(float x, float y); |
10 | |
11 | //设置节点的旋转(angle)角度 |
12 | virtual void setRotation(float rotation); |
13 | //设置节点X轴的旋转角度,表现为水平旋转倾斜 |
14 | virtual void setRotationSkewX(float rotationX); |
15 | //设置Y轴节点的旋转角度,表现为垂直旋转倾斜 |
16 | virtual void setRotationSkewY(float rotationY); |
17 | //改变该节点X轴的倾斜角,单位是度 |
18 | virtual void setSkewX(float sx); |
19 | //改变该节点Y轴的倾斜角,单位是度 |
20 | virtual void setSkewY(float sy); |
21 | //从容器中删除一个孩子,取决于cleanup参数同时会清除所有的活动的动作 |
22 | virtual void removeChild(Node* child, bool cleanup); |
23 | //从容器中删除所有的孩子, 取决于cleanup参数同时会清除所有的活动的动作 |
24 | virtual void removeAllChildrenWithCleanup(bool cleanup); |
25 | //对一个孩子重新排序,设定一个新的z轴的值 |
26 | virtual void reorderChild(Node *child, int zOrder); |
27 | //在绘画之前,排列所有的孩子数组一次,而不是每次添加或者删除子节点时都排序。 这个方法可以大量地提高性能 |
28 | virtual void sortAllChildren(); |
29 | //添加一个子节点到容器中 |
30 | virtual void addChild(Node *Child); |
31 | virtual void addChild(Node *child, int zOrder, int tag); |
32 | virtual void addChild(Node *Child, int zOrder, int tag); |
33 | //设置几点的缩放(x,y,z) |
34 | virtual void setScale(float fScale); |
35 | //设置位置的“z”轴坐标系,是OpneGL Z 定点值 |
36 | virtual void setVertexZ(float fVertexZ); |
本文详细介绍了Cocos2d-x中精灵类Sprite的创建方式与常用属性方法,包括多种创建方式与初始化操作,以及节点的缩放、位置、旋转等属性的设置。

1001

被折叠的 条评论
为什么被折叠?



