cocos2d-x 精灵 Sprite
2016-03-24 21:13
585 查看
精灵类 Sprite 是一张二维图片对象,可以使用一张图片或者一张图片的一块矩形部分来定义。精灵对象可以移动,旋转,缩放,执行动画,并接受其他转换。Sprite的运用十分广泛,比如敌人,游戏里面运动的物体等等都是Sprite。
使用Sprite最频繁的编码就是三部曲
(1)创建Sprite
(2)加入layer中
(3)设置精灵位置
/** * 不适用任何纹理来创建一个空的精灵对象。我们可以在随后调用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));
相关文章推荐
- COCOS学习笔记--Button类及其相关控件属性
- cocos2dx 3.x C++搭建protobuf环境
- 浅谈midi与cocos的交互
- cocos2dx之伪3D,2D平面图片按比例缩放实例
- cocos ide 出现lua语句不执行的bug
- 搭建 Cocos2d-html5环境与webstorm的配置
- cocos2d-x 自定义动态特效背景
- Cocos2dx Shader 使用系列之一:OpenGL Shader Language介绍
- cocos2d-x的安装
- 学习Cocos2d的博客 --推荐
- cocospod 安装和使用
- xcode 把cocos2d-x 以源码的形式包含进自己的项目适合, 性能分析问题的错误
- Windows下Cocos2dx-3.10的Android交叉编译环境搭建
- eclipse编译下cocos2dx3.x
- 我所理解的cocos2dx屏幕适配
- cocos2dx 坐标系相关知识总结
- cocos2d-x-3.9,js对ccs的Listview的item的Button如果有setEnabled 操作,在android手机的微信里面打开会出现上下滑动变卡
- 如何在Windows 7平台搭建Android Cocos2d-x3.2alpha0开发环境
- 在Windows7上搭建Cocos2d-x 3.2alpha0开发环境
- 战火引擎~完爆cocos2d