您的位置:首页 > 移动开发 > Cocos引擎

cocos2d-x 精灵 Sprite

2016-03-24 21:13 585 查看
精灵类 Sprite 是一张二维图片对象,可以使用一张图片或者一张图片的一块矩形部分来定义。精灵对象可以移动,旋转,缩放,执行动画,并接受其他转换。Sprite的运用十分广泛,比如敌人,游戏里面运动的物体等等都是Sprite。

/**
* 不适用任何纹理来创建一个空的精灵对象。我们可以在随后调用setTexture设置精灵的纹理
* @return 返回一个autoreleased的精灵对象
*/
static Sprite* create();

/**
* 通过一个image文件名来创建一个精灵对象
* 创建精灵完成以后,精灵的大小就是这个image的大小,同时offset是(0, 0)
*
* @param   filename image文件的路径
* @return  返回一个autoreleased的精灵对象
*/
static Sprite* create(const std::string& filename);

/**
* 通过一个image文件来创建一个精灵对象,并指定这个精灵在image文件中的位置和大小
* 注:这里的rect的坐标系统是UI坐标系统,从左上角开始计算
*
* @param   filename image文件的路径
* @param   rect     精灵的位置和大小
* @return  返回一个autoreleased的精灵对象
*/
static Sprite* create(const std::string& filename, const Rect& rect);
//我们可以看看rect的定义
/**

Rect    (       )
构造一个空的矩形。

Rect    (   float   x,
float   y,
float   width,
float   height
)
构造函数一个矩形。

参数
x   左下角点的x坐标。
y   左下角点的y坐标。
width   rect的宽度。
height  rect的高度。
Rect    (   const Vec2 &    pos,
const Size &    dimension
)
构造函数一个矩形。

参数
pos 起始点的坐标点。
dimension   矩形的尺寸。
Rect    (   const Rect &    other   )
拷贝构造函数。
*/

/**
* 通过一个Texture2D对象来创建精灵对象
* 创建以后,这个精灵对象的大小就是这个纹理的大小,精灵的offset是(0, 0)
*
* @param   texture    一个Texture2D对象指针
* @return  返回一个autoreleased的精灵对象
*/
static Sprite* createWithTexture(Texture2D *texture);

/**
* Creates a sprite with a texture and a rect.
* 通过一个Texture2D对象来创建精灵对象,并指定这个精灵的位置和大小
*
* @param   texture    指向Texture2D对象的指针,这个指针可以进行复用
* @param   rect       精灵的位置和大小
* @param   rotated    是否需要旋转这个精灵,逆时针旋转90°
* @return  返回一个autoreleased的精灵对象
*/
static Sprite* createWithTexture(Texture2D *texture, const Rect& rect, bool rotated=false);

/**
* 通过精灵帧来创建一个精灵
*
* @param   spriteFrame    一个精灵帧的指针
* @return  返回一个autoreleased的精灵对象
*/
static Sprite* createWithSpriteFrame(SpriteFrame *spriteFrame);

/**
* 通过一个精灵帧名字来创建一个精灵
* 内部实现中,会通过spriteFrameName参数从SpriteFrameCache中获取SpriteFrame对象
* 如果在SpriteFrameCache中没有对应的SpriteFrame, 会引发一个异常
*
* @param   spriteFrameName 精灵帧的名字
* @return  返回一个autoreleased的精灵对象
*/
static Sprite* createWithSpriteFrameName(const std::string& spriteFrameName);


使用Sprite最频繁的编码就是三部曲

(1)创建Sprite

Sprite  *sprite = Sprite::create(hero.png);


(2)加入layer中

this->addChild(sprite);


(3)设置精灵位置

sprite->setPosition(Point(100,200));
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: