Cocos2d-x学习笔记《08》——精灵类Sprite

本文详细介绍了Cocos2d-x中精灵类Sprite的创建方式与常用属性方法,包括多种创建方式与初始化操作,以及节点的缩放、位置、旋转等属性的设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Cocos2d-x学习笔记《08》——精灵类Sprite

一. Sprite类继承关系

cocos2d_class_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);
0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值