精灵是一个2D图像,通过改变它的旋转角度、位置、尺寸、颜色等属性可以使其运动或者变换。
创建精灵的方式有多种,使用哪种则取决于你的需要。你可以通过不同的图片格式(包括PNG,JPEG,TIFF,以及其他格式)创建精灵(Sprite)。接下来我们就将一起来讨论这些创建精灵的方法。
如果你想要创建一个只显示一张图片特定部分的
Sprite
,那么你可以使用
Rect
。
auto mySprite = Sprite::create(
"mysprite.png"
,Rect(0,0,40,40));
SpriteSheet是一个将多个精灵合并到一个文件的方法。相对于把每个精灵放在单独的文件夹中,这种方式减小了整个文件的大小。这意味着你将很大程度地减少内存的使用、文件大小和加载时间。
另外,为了通过批处理来实现更好的性能,我们必须使用Sprite Sheet。更多内容请查看高级篇中的内容。
当使用SpriteSheet时,首先将其加载到SpriteFrameCache
中。SpriteFrameCache
是一个保存SpriteFrame
,以便我们能很快访问到SpriteFrame
的缓存类。SpriteFrame
是一个包含了图像名和特定精灵尺寸(Rect
)的对象。
SpriteFrameCache
可以避免多次加载SpriteFrame
。SPriteFrame
只加载一次,并被保存到SpriteFrameCache
中。
// load the Sprite Sheet
auto spritecache = SpriteFrameCache::getInstance();
// the .plist file can be generated with any of the tools mentionedbelow
spritecache->addSpriteFramesWithFile(
"sprites.plist"
);
锚点是一个定点,设置精灵位置的时候可以通过锚点来指定使用精灵的哪个部分。
锚点只影响可以修改的属性,包括scale、rotation和skew,不包含color和opacity。锚点使用左下角坐标系统。这意味着当设置X、Y坐标值时你需要确保是从左下角开始计算。默认情况下,所有节点对象的锚点都是(0.5,0.5)。
角度(Rotation)
通过增加或减少角度来使精灵旋转。增加角度值使精灵顺时针旋转,减少角度值使精灵逆时针旋转。默认值为0。
缩放(Scale)
改变X值、Y值或者同时改变X、Y值可以缩放精灵。X、Y的默认值都为1.0。
倾斜(Skew)
改变X值、Y值或者同时改变X、Y值可以使精灵倾斜。X、Y的默认值都为1.0。
有一些精灵对象的属性是不被锚点所影响的。为什么呢?因为这些属性只改变表面特征,如颜色和透明度。
透明度
通过特定的值来改变精灵的透明度。取值范围为(2~255),默认值为255(不透明)
1
2
|
// set the opacity by passing in a value
mySprite->serOpacity(30);
|