添加动画(两种)
添加动画(两种)
///////// 添加帧动画(每一副图加载) ///////////
// 添加一个精灵用于执行帧动画
Sprite *sprite = Sprite::create("grossini_dance_01.png");
sprite->setPosition(Vec2(visibleSize.width / 2, visibleSize.height / 2));
this->addChild(sprite);
Animation *animation = Animation::create();
char str[50] = { 0 };
for (int i = 1; i < 14; i++){
sprintf(str, "grossini_dance_%02d.png", i);
// 将图片添加进去
animation->addSpriteFrameWithFileName(str);
}
// 设置每帧动画的时间间隔
animation->setDelayPerUnit(0.3f);
// 设置动画执行完最后一帧后是否回到第一帧
animation->setRestoreOriginalFrame(true);
sprite->runAction(Animate::create(animation));
// 无限运动
//sprite->runAction(RepeatForever::create( Animate::create(animation)));
///////// 添加帧动画(每一副图加载) ///////////
///////// 添加帧动画(帧缓存) //////////
// 创建精灵,用来执行动画
Sprite *sprite = Sprite::create();
sprite->setPosition(Vec2(visibleSize.width / 2, visibleSize.height / 2));
addChild(sprite);
// 创建帧缓存
SpriteFrameCache *spriteFrameCache = SpriteFrameCache::getInstance();
// 添加帧缓存的文件
spriteFrameCache->addSpriteFramesWithFile("grossini.plist");
// 设置数组,存放帧缓存的图片信息
Vector<SpriteFrame*> vec;
// 创建字符数组,用于存储图片的名称
char name[50];
// 初始化数组
memset(name, 0, 50);
for (int i = 1; i < 15; i++){
// 将图片的名字添加到 name 数组中
sprintf(name, "grossini_dance_%02d.png", i);
// 将图片添加到容器中
vec.pushBack(spriteFrameCache->getSpriteFrameByName(name));
}
// 创建帧动画
Animation* animation = Animation::createWithSpriteFrames(vec,0.3f);
sprite->runAction(Animate::create(animation));
///////// 添加帧动画(帧缓存) //////////