首页 > 代码库 > cocos2d-x实战 C++卷 学习笔记--第5章 精灵
cocos2d-x实战 C++卷 学习笔记--第5章 精灵
前言:
精灵类是Sprite类。它的子类有PhysicsSprite 和 Skin。
PhysicsSprite 是物理引擎精灵类,而Skin是皮肤精灵类,用于骨骼动画。
创建Sprite精灵对象
创建精灵对象有多种方式,常用的函数如下:
1)创建一个精灵对象,纹理等属性需要在创建后设置
static Sprite* create();
2)指定图片创建精灵
static Sprite* create(const std::string& filename);
3)指定图片和裁剪的矩形区域来创建精灵
static Sprite* create(const std::string& filename, const Rect& rect);
4)指定纹理创建精灵
static Sprite* createWithTexture(Texture2D* texture);
5)指定纹理和裁剪的矩形区域来创建精灵,第3个参数指定是否旋转纹理,默认不旋转
static Sprite* createWithTexture(Texture2D* texture, const Rect& rect, bool rotated = false);
6)通过一个精灵帧对象创建另一个精灵对象
static Sprite* createWithSpriteFrame(SpriteFrame* pSpriteFrame);
7)通过指定帧缓存中精灵帧名 创建 精灵对象
static Sprite* createWithSpriteFrameName(cosnt std::string & spriteFrameName);
代码示例:
1 auto spbk = Sprite::create("background.png"); 2 //// 此处没有设置position,默认的位置是 左下角 3 //spbk->setPosition(Point(origin.x + visibleSize.width / 2, origin.y + visibleSize.height / 2)); 4 spbk->setAnchorPoint(Point::ZERO); 5 this->addChild(spbk, 0); 6 7 //// 使用 纹理对象(Texture2D) 创建Sprite对象. 8 /// Rect(float x, float y, float width, float height); 9 // 参数rect是 tree1.png图片中,UI坐标系下,(604,38)坐标位置,宽302,高295的一个区域10 auto tree1 = Sprite::create("tree1.png", Rect(604, 38, 302, 295));11 tree1->setPosition(Point(200, 230));12 this->addChild(tree1, 0);13 14 Texture2D* cache = Director::getInstance()->getTextureCache()->addImage("tree1.png");15 auto tree2 = Sprite::create();16 tree2->setTexture(cache);17 // 参数rect是 tree1.png图片中,UI坐标系下,(73,72)坐标位置,宽182,高270的一个区域18 tree2->setTextureRect(Rect(73, 72, 182, 270));19 tree2->setPosition(Point(500, 200));20 this->addChild(tree2, 0);
通过 Director::getInstance()->getTextureCache() 函数可以获得 TextureCache 实例,TextureCache 的 addImage("tree1.png")函数可以创建纹理Texture2D对象,其中的tree1.png是纹理图片名。
cocos2d-x实战 C++卷 学习笔记--第5章 精灵
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。