cocos2dx中的序列帧动画

来源:互联网 发布:网络主播活动策划 编辑:程序博客网 时间:2024/06/03 18:32

0、序列帧动画,就是把一张一张的图片,连续播放而形成的动画。


1、在cocos中,类Animate是用来实现序列帧动画的。该类继承自ActionInterval,所以可以用作runAction的参数。

Animate的创建和使用很简单:

Animate * anim = Animate::create(animation);sprite->runAction(anim);


2、Animate创建调用的参数,是类Animation。

Animation继承自Ref、Clonable。用来添加每一帧的图片。

Animation有三种创建方式:

(1)直接使用Animation::create(void)。

创建之后,用Animation::addSpriteFrame(SpriteFrame* spriteFrame)添加图片。

setLoops(unsigned int loops) 设置循环次数。

setDelayPerUnit(float delayPerUnit) 设置每帧之间的时间间隔。


(2)使用SpriteFrame*数组创建:

Animation::createWithSpriteFrames(const Vector<SpriteFrame*>& frames, float delay, unsigned int loops)


(3)使用AnimationFrame*数组创建:

Animation::create(const Vector<AnimationFrame*>& arrayOfAnimationFrameNames,

float delayPerUnit, unsigned int loops)


3、类AnimationFrame继承自Ref、Clonable。

创建时需要用到SpriteFrame:

AnimationFrame* create(SpriteFrame* spriteFrame, float delayUnits, const ValueMap& userInfo)

使用AnimationFrame可以使每帧图片的延迟时间不同,形成变速的动画。


4、类AnimationCache继承自Ref,用来缓存Animation,是一个单体实例。

AnimationCache::getInstance()->addAnimation(Animation *animation, const std::string& name);

保存起来的Animation,使用getAnimation(const std::string& name)取出。

此外也可以用plist文件缓存Animation:

addAnimationsWithFile(const std::string& plist);

使用plist文件可以一次加载多个动画。


0 0