手动添加的方法需要将每一帧要显示的精灵有序添加到Animation类中,并设置每帧的播放时间,让动画能够匀速播放。另外,还要通过setRestoreOriginalFrame来设置是否在动画播放结束后恢复到第一帧。创建好Animation实例后,需要创建一个Animate实例来播放序列帧动画。
CCAnimation *animation = CCAnimation::create();
for (int i = 1; i <= 4; i++)
{
char szName[100] = {0};
sprintf(szName, "an1_anim%d.png", i);
animation->addSpriteFrameWithFileName(szName);
}
animation->setDelayPerUnit(2.8f/14.0f);
animation->setRestoreOriginalFrame(true);
CCAnimate *action = CCAnimate::create(animation);
CCSprite *sprite = CCSprite::create("an1_anim1.png");
sprite->setPosition(ccp(100, 100));
this->addChild(sprite);
sprite->runAction(action);
在创建Animation实例时会用到以下几个接口:
原文:http://my.oschina.net/BingzhaoChen/blog/470263