1.已图片帧加载动画
Sprite *grassBg = Sprite::create("loginScene/grass.png");
grassBg->setAnchorPoint(Vec2(0,0));
grassBg->setPosition(Vec2(0,0));
parent->addChild(grassBg);
CCAnimation *animation = CCAnimation::create();
animation->addSpriteFrameWithFileName("loginScene/grass.png");
animation->addSpriteFrameWithFileName("loginScene/grass1.png");
animation->addSpriteFrameWithFileName("loginScene/grass2.png");
animation->setDelayPerUnit(1.0f / 2.0f); // 这个动画包含14帧,将会持续2.8秒.
animation1->setDelayPerUnit(1.0f / 2.0f); // 这个动画包含14帧,将会持续2.8秒.
CCAnimate *Aniaction = CCAnimate::create(animation);
grassBg->runAction(CCRepeatForever::create(Aniaction)); // 运行精灵对象
2.已plist加载动画
SpriteFrameCache * pSpriteFrameCache = SpriteFrameCache::getInstance();
pSpriteFrameCache->addSpriteFramesWithFile("xiaocai.plist","xiaocai.png");
auto sp = Sprite::createWithSpriteFrameName("xiaocai_1.jpg");
sp->setPosition(VisibleSize.width/2,VisibleSize.height/2);
auto ani = Animation::create();
for (int i = 1;i < 12;i++)
{
std::string fileName = StringUtils::format("%s%d.jpg",buffer.c_str(), i);
ani->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName(fileName));
}
ani->setLoops(-1); //循环播放
ani->setDelayPerUnit(0.05f); //播放间隔
Animate* animate = Animate::create(ani);
sp->runAction(animate);
this->addChild(sp);
3.加载例子效果:
ParticleSystemQuad *particle = ParticleSystemQuad::create("lizi_2.plist");
particle->setPosition(Vec2(70,30));
addChild(particle);
lua加载plist动画:
local spriteFrame = cc.SpriteFrameCache:getInstance()
spriteFrame:addSpriteFrames( "Common2/hall/ani/shop.plist" )
local animation = cc.Animation:create()
for i=0, 13 do
local blinkFrame = spriteFrame:getSpriteFrame( string.format( "shop%d.png", i ) )
animation:addSpriteFrame( blinkFrame )
end
animation:setDelayPerUnit( 0.13 )
animation:setRestoreOriginalFrame( true )
local action = cc.Animate:create(animation)
if self.spriteShop ==nil then
self.spriteShop = cc.Sprite:createWithSpriteFrameName("shop0.png")
self.spriteShop:setAnchorPoint( 0.5, 0.5 )
self.spriteShop:setPosition(0,0)
self:addChild( self.spriteShop )
end
self.spriteShop:stopAllActions()
self.spriteShop:runAction(cc.RepeatForever:create(action))