简介
Cocos2d-x中,动画的具体内容是依靠精灵显示出来的,为了显示动态图片,我们需要不停切换精灵显示的内容,通过把静态的精灵变为动画播放器从而实现动画效果。动画由帧组成,每一帧都是一个纹理,我们可以使用一个纹理序列来创建动画。
创建方法
1. 手动添加序列帧到Animation类
2. 使用文件初始化Animation类
手动添加
手动添加的方法需要将每一帧要显示的精灵有序添加到Animation类中,并设置每帧的播放时间,让动画能够匀速播放。另外,还要通过`setRestoreOriginalFrame`来设置是否在动画播放结束后恢复到第一帧。创建好Animation实例后,需要创建一个Animate实例来播放序列帧动画。
- autoanimation=Animation::create();
- for@H_301_37@(int@H_301_37@i=1;i<15;i++)
- {
- char@H_301_37@szName[100]={0};
- sprintf(szName,"Images/grossini_dance_%02d.png"@H_301_37@,i);
- animation->addSpriteFrameWithFile(szName);
- }
- //shouldlast2.8seconds.Andthereare14frames.@H_301_37@
- animation->setDelayPerUnit(2.8f/14.0f);
- animation->setRestoreOriginalFrame(true@H_301_37@);
- autoaction=Animate::create(animation);
- _grossini->runAction(Sequence::create(action,action->reverse(),NULL));
在创建Animation实例时会用到以下几个接口:
1.“addSpriteFrame”,添加精灵帧到Animation实例
2. “setDelayUnits”,设置每一帧持续时间,以秒为单位
3. “setRestoreOriginalFrame”,设置是否在动画播放结束后恢复到第一帧
4. “clone”,克隆一个该Animation实例
在使用AnimationCache类时会用到以下几个接口:
2.“getAnimation”,从缓存中获取动画对象
3.“getInstance”,获取动画缓存实例对象