换帧动画应该算是比较实用的吧,本人用得比较多的是在加载页上,可能会需要加一个奔跑小人或者其他东西的换帧动画,让游戏更加美观。
//创建精灵对象
auto loadSprite =CCSprite::create("1.png");
CCAnimation * animation =CCAnimation :: create();
animation ->addSpriteFrameWithFileName("1.png");
animation ->addSpriteFrameWithFileName("2.png");
animation ->addSpriteFrameWithFileName("3.png");
。
。//有几张图就添加 也可以用一个for循环来加载图片
。
animation ->addSpriteFrameWithFileName("n.png");
//设置单位延迟时间
animation->setDelayPerUnit(0.1f);
//设置恢复原始帧
animation->setRestoreOriginalFrame(true);
//设置精灵位置
loadSprite->setPosition(ccp(100,size.height/4);
//运行帧动画 CCRepeatForever:反复执行某个动作
loadSprite->runAction(CCRepeatForever::create(CCAnimation::create(animation)));
//做一个移动动作 4秒后移动到(1000,size.height/4)
CCMoveTo *moveTo = CCMoveTo::create(4,ccp(1000,size.height/4);
loadSprite->runAction(moveTo);
this->addChild(loadSrpite);
以上代码实现了一个精灵的换帧动画 并从a移动到b
for循环:
//设置动画名字数组的长度
char nameSize[20] = { 0 };
//动画的循环 n-1张图片
for (int i = 1; i < n; i++)
{
//循环遍历
sprintf(nameSize, "%d.png", i);
//添加到序列帧动画
animation->addSpriteFrameWithFile(nameSize);
}