cocos2d-x之逐帧动画
cocos2d-x之逐帧动画
在bool HelloWorld::init()中添加如下内容
//缓存,帧动画的帧的缓存
auto cache = SpriteFrameCache::getInstance();
cache->addSpriteFramesWithFile("anim.plist");//添加帧缓存
Vector<SpriteFrame*> vec;
//定义一个名字
char name[15];
//清空name数组
memset(name, 0, 15);
//获取每一针的名字,配置animation
for (int i = 0; i < 20; i ++) {
//设置每一针的名字,anim后有4w位,不够的用0填充
sprintf(name, "anim%04d",i);
//将每一针的名字添加到vec中
vec.pushBack(cache->getSpriteFrameByName(name));
}
//设置animation工具,创建动画,0.1f代表两个帧之间的间隔为0.1秒,美妙10帧
Animation *animation = Animation::createWithSpriteFrames(vec, 0.1f);
//使用animate将animation变成动作,animation是动画的配置,不是动作
Animate *animate = Animate::create(animation);
//使用Sprite去执行动画
//创建sprite
auto sprite = Sprite::create();
addChild(sprite);//将sprite添加进去
sprite->setPosition(Point(300,300));//设置添加到的位置
//设置动画不断的运行,animate动画一直执行
sprite->runAction(RepeatForever::create(animate));