cocos2d-x(动画)

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)));

你可能感兴趣的:(cocos2d-x)