Cocos2dx技术(三)——cocos2dx基本概念(三)精灵
1、什么是精灵 精灵是一个2D图像,通过改变它的旋转、角度、位置、尺寸、颜色等属性可以使其运动或者变换。 2、创建精灵 可以通过不同格式的图片(png,jpeg,tiff 等等)创建精灵。 auto mySprite=Sprite::Create("mysprite.png"); 上面的代码在创建精灵时候使用了整张图片,也就是说,这种方式生成的Sprite显示的是一张图片文件的全部。如果Sprite只要显示一张图片文件的某个部分,那么可以使用Rect,但是需要注意的是Rect只能指定矩形区域。 auto mySprite=Sprite::Create("mysprite.png",Rect(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"); automySprite2 =Sprite::createWithSpriteFrame(mySpriteFrame); 4、控制精灵 可以通过设置锚点和位置、角度、缩放、倾斜来控制精灵的位置和姿态 可以通过设置颜色和透明度来改变精灵的色彩 综上,受锚点影响的属性有:位置、角度、缩放、倾斜;不受锚点影响的属性有:颜色、透明度 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |