简介
Cocos2d-x中,动画的具体内容是依靠精灵显示出来的,为了显示动态图片,我们需要不停切换精灵显示的内容,通过把静态的精灵变为动画播放器从而实现动画效果。动画由帧组成,每一帧都是一个纹理,我们可以使用一个纹理序列来创建动画。
我们使用Animation
类描述一个动画,而精灵显示动画的动作则是一个Animate
对象。动画动作Animate
是精灵显示动画的动作,它由一个动画对象创建,并由精灵执行。
需要了解的几个类:
SpriteFrame
:精灵帧类。精灵帧包含了对应纹理在大的纹理区域中的位置和大小, 对应纹理是否经过旋转和偏移。根据这些几何信息,可以从大的纹理中找到正确的纹理区域作为精灵帧显示的图像。getOriginalSize()
获取精灵帧原始尺寸。通过SpriteFrameCache
类中SpriteFrame* getSpriteFrame(frameName)
的获得。SpriteFrameCache
:精灵帧缓存类。存放了多个精灵帧,通过字典的方式存储单个精灵帧,key:精灵帧的名字,值: SpriteFrame。AnimationFrame
:动画帧信息类。存储的是对应的精灵帧信息。通过Animation
的const Vector<AnimationFrame*>& getFrames()
函数获得。该类中也可以通过函数SpriteFrame* getSpriteFrame()
获取SpriteFrame
对象Animation
:动画信息类。存储了所有的动画帧信息,一般通过create()
或者createWithSpriteFrames()
方法创建。Animate
: 动画处理类。真正完成动画表演的类。
添加精灵帧至缓存
把多张帧动画散图打成合图,生成plist、png文件,plist文件记载着每一帧在png中的位置信息。
local plist, png = "plistname.plist", "pngname.png"
cc.SpriteFrameCache:getInstance():addSpriteFrames