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

COCOS学习笔记--精灵Sprite的3种创建方法总结

2016-01-12 09:37 417 查看
精灵是我们在cocos开发中经常会接触到的概念,我们在cocos中对图形图像进行控制都是通过精灵来完成的。我们可以把精灵理解为一个显示图片的载体,被它加载显示的既可以是单图片也可以是序列帧图片。同时,我们还可以控制它的位置、颜色、大小等属性。

精灵Sprite的创建方法主要可以归纳为3种,这里就进行一下总结:



方法一.使用create()方法通过图片直接创建精灵

我们看一下cocos源码:

//不通过任何纹理创建一个空的精灵对象。
//可以在随后调用setTexture方法设置纹理
static Sprite* create();
 
//通过一个 image文件名来创建一个精灵对象
//创建之后,精灵的大小就是image的大小
static Sprite* create(const std::string& filename);
    
//通过一个多边形信息来创建一个精灵对象
static Sprite* create(const PolygonInfo& info);
 
//通过一个 image文件名来创建一个精灵对象
//rect指定这个精灵的位置和大小
static Sprite* create(const std::string& filename, const Rect& rect);

举个栗子:

auto sprite  =  Sprite::create(“MyImage.png”); 
this ->addChild(sprite);


方法二.使用createWithTexture()方法通过纹理创建精灵

cocos源码:

//通过一个Texture2D对象来创建一个精灵对象
//创建之后,精灵的大小就是texture的大小
static Sprite* createWithTexture(Texture2D *texture);
 
//通过一个Texture2D对象来创建一个精灵对象
//rect指定这个精灵的位置和大小
//rotated是否需要旋转这个精灵,逆时针旋转90度
static Sprite* createWithTexture(Texture2D *texture, const Rect& rect, bool rotated=false);

举个栗子:

auto sprite  =  Sprite::createWithTexture(TextureCache::getInstance()->addImage(“MyImage.png”)); 
this ->addChild(sprite);


方法三.使用createWithSpriteFrame()方法通过精灵帧创建精灵

cocos源码:

//通过一个精灵帧来创建一个精灵对象
//精灵帧中包含一个纹理和其位置、大小等信息
tatic Sprite* createWithSpriteFrame(SpriteFrame *spriteFrame);
 
//通过一个精灵帧名字来创建一个精灵对象
//通过精灵帧名字从帧缓存SpriteFrameCache中取出精灵
//如果精灵帧在帧缓存中不存在会引发一个异常
static Sprite* createWithSpriteFrameName(const std::string& spriteFrameName);

举个栗子:

//首先创建一个精灵帧
//参数为显示区域大小左下右上
auto spriteFrame  =  SpriteFrame::create(“MyImage.png”,Rect(0,0,774,490));
//通过精灵帧创建精灵
auto sprite = Sprite::createWithSpriteFrame(spriteFrame); 
this ->addChild(sprite);








以上。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: