cocos2d-x 精灵 Sprite

精灵类 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));

你可能感兴趣的:(cocos2d-x 精灵 Sprite)