游戏中我们经常要让一个Sprite成为连续动画播放,例如跑酷类游戏中主角不停奔跑。
大概思路就是把连续的图片保存在一个向量中,然后让他RepeatForever播放就可以了。我们来看代码:
Vector<SpriteFrame*> allf;
for (int i = 1; i<7; i++) {
auto sf = SpriteFrame::create(StringUtils::format("run%d.png",i), Rect(0,0,100,100));
allf.pushBack(sf);
}
auto an=Animation::createWithSpriteFrames(allf);
an->setDelayPerUnit(0.06);
auto Ani=Animate::create(an);
auto Sp=Sprite::create();
Sp->setTag(11);
Sp->runAction(RepeatForever::create(Ani));
this->addChild(Sp);
Sp->setPosition(100, 50);
好,这样我们就可以在100,50这个点看到这个小人了。
其中setDelayPerUnit是每张图片的间隔,RepeatForever是让他不停地播放。