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

Cocos2dx技术(三)——cocos2dx基本概念(三)精灵

2015-04-07 09:18 323 查看
1、什么是精灵

精灵是一个2D图像,通过改变它的旋转、角度、位置、尺寸、颜色等属性可以使其运动或者变换。

2、创建精灵

可以通过不同格式的图片(png,jpeg,tiff 等等)创建精灵。

auto mySprite=Sprite::Create("mysprite.png");

上面的代码在创建精灵时候使用了整张图片,也就是说,这种方式生成的Sprite显示的是一张图片文件的全部。如果Sprite只要显示一张图片文件的某个部分,那么可以使用Rect,但是需要注意的是Rect只能指定矩形区域。

auto mySprite=Sprite::Create("mysprite.png",Rect(0,0,40,40));//前面两个参数是确定相对左上角的起点位置,后面两个参数是确定相对左上角的终点位置。

注意:Rect是以左上角为坐标原点的,这与以左下角为原点的屏幕布局坐标不同!

在没有指定Rect的情况下,cocos2dx将自动使用指定图片之全部长宽来创建精灵。

3、使用Sprite Sheet创建精灵

Sprite Sheet是将多个精灵所需的图片合并到一个文件的方法。相对于把每个精灵所需的图片放在单独的文件中,这种集中存放图片的方式更节省内存,减少了文件大小,加载速度更快。

创建Sprite Sheet可以借用专用工具:Cocos Studio 或者 Texture Packer 或者 Zwoptex 

SpriteFrame对象包含一个图片文件名(这个图片不一定是单独存储的,也可以是plist文件中的局部图片)和一个指定精灵尺寸(Rect)的对象,SpriteFrameCache是一个缓存SpriteFrame的类。使用SpriteFrameCache可以避免重复加载SpriteFrame。

auto mySpriteCache = SpriteFrameCache::getIstance();

mySpriteCache  -> addSpriteWithFile("sprites.plist"); // 将Sprite Sheet 加载到SpriteFrameCache

// 将plist文件加载进缓存之后,从SpriteFrameCache中获取精灵有如下两种等价方式,这两种方式加载的图片都是来自"sprites.plist"文件

//第一种方式

auto mySprite1 = Sprite::createWithSpriteFrameName("mySprite1 .png");

//第二种方式

auto mySpriteFrame = mySpriteCache -> getSpriteByName("mySprite2 .png");

auto mySprite2 = Sprite::createWithSpriteFrame(mySpriteFrame );

4、控制精灵

可以通过设置锚点和位置、角度、缩放、倾斜来控制精灵的位置和姿态

可以通过设置颜色和透明度来改变精灵的色彩

综上,受锚点影响的属性有:位置、角度、缩放、倾斜;不受锚点影响的属性有:颜色、透明度
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  cocos2dx