- 从.png和.plist文件加载帧动画
CCSpriteBatchNode* spritebatch=CCSpriteBatchNode::create("animations/walk.png");
CCSpriteFrameCache* cache=CCSpriteFrameCache::sharedSpriteFrameCache();
cache->addSpriteFramesWithFile("animation/walk.plist");
m_pSprite1=CCSprite::createWithSpriteFrameName("walk_go_01.png");
spritebatch->addChild(m_pSprite1); this->addChild(spritebatch)
现在我们有一个需求:创建CCArray对象,增加动画中的所有frame到此对象中。在这个动画例子中,有10个frame都有一模一样的尺寸,因此我们利用嵌套循环来迭代。
CCArray* animFrames=CCArray::createWithCapacity(11);
char str={0};
for(int i=1; i<11; i++) { sprintf(str,"walk_go_%02d.png",i);
CCSpriteFrame* frame=cache->spriteFrameByName(str);
animFrames->addObject(frame); }
CCAnimation* animation=CCAnimation::createWithSpriteFrames(animFrames,0.4f);
m_pSprite1->runAction(CCRepeatForever::create(CCAnimate::create(animation)));
- CCAnimationCache可以加载xml/plist文件,同样可以批量加载动画,而且这个接口更简单易用。
CCAnimationCache* cache=CCAnimationCache::sharedAnimationCache();
cache->addAnimationsWithFile("animations/animations-2.plist");
CCAnimation animation=cache->animationByName(walk_1);
CCAnimate animate=CCAnimate::create(animation);
sprite->runAction(animate);