CCAnimationCache类是一个单例,用于缓存所有动画和动画帧,代码如下:
CCAnimationCache::sharedAnimationCache()->addAnimation(animation,"dance");
CCAnimationCache *animCache =CCAnimationCache::sharedAnimationCache();
CCAnimation *normal = animCache->animationByName("dance");
利用sharedAnimationCache获取单例,利用addAnimation将动画加入缓存并命名,利用animationByName调用。
CCAnimationFrame和精灵帧CCSpriteFrame类似,是单张图片,也可以通过精灵帧去定义。
CCSpriteFrame *frame= (CCSpriteFrame*)pObj;
CCAnimationFrame *animFrame = new CCAnimationFrame();
animFrame-> initWithSpriteFrame(frame,1,1NULL);
initWithSpriteFrame就是利用精灵帧初始化动画帧,第一个参数是精力帧,第二个参数该动画帧的延迟时间,最后一个是CCDirector的信息。
CCAnimation就是动画,存储一个动画需要的所有帧。
CCArray *animFrames = CCArray::create();
char tmp[50];
for(int j = 0;j<14;j++)
{
sprintf(tmp,"grossini_dance_%02d.png",j+1);
CCSpriteFrame *frame = cache->spriteFrameByName(tmp);
animFrames->addObject(frame);
}
CCAnimation *animation = CCAnimation::create(animFrames,0.3f);
首先定义精灵帧数组,然后定义一个动画;也可以使用动画帧来定义。
CCAnimate动画动作就是一个动作类
sprite->runAction(CCRepeatForever::create(CCAnimate::create(animation)));