动画都是由一帧一帧连接而成的,有了动画的每一帧之后,我们需要把每一帧添加到CCAnimation中,CCAnimation相当于是一个容器,里面按我们添加帧的顺序,将我们的每一帧都储存好,并且定义了各帧之间的延时,还给每帧起了名字,我们可以通过动画的名字访问特定的帧。将CCAnimation封装成一个CCAnimate。 CCAnimate可以被我们的精灵当做一个动作执行。
bool HelloWorld::init()
{
//
// 1. super init first
if ( !CCLayer::init() )
{
return false;
}
//生成一个精灵,动画实际上是该精灵的一种动作。//是动同的第一帖
CCSprite *spr=CCSprite::create("crop1.png");
spr->setPosition(ccp(300, 300));
addChild(spr);
//创建动画动作
CCAnimation *animation=CCAnimation::create();
//将每帖图放入动画类对象中
for (int i=0; i<4; i++)//将四个图片加到animation 里面
{
char str[100];
sprintf(str, "crop%d.png",i+1);
animation->addSpriteFrameWithFileName(str);//用文件名添加精灵帖。
}
//设置帧间隔时间 ,此参数必须设置,无此参数动画不会播放。 必须的要。
animation->setDelayPerUnit(0.01f);
//动画播放完毕后,帧序是否重设为默认第一帖。
animation->setRestoreOriginalFrame(true);//如果是true会停在第一帧
//设置循环次数,-1代表无限循环。
animation->setLoops(-1);
//形成动画效果
CCFiniteTimeAction *animate=CCAnimate::create(animation);
spr->runAction(animate);
return true;
}