cocos2d-x中的动画的使用

大体思想:

 

 

动画效果的使用:

根据图片创建纹理--》根据纹理创建帧,将帧放入到类似List的对象中anim,将

 

Cpp代码 复制代码 收藏代码
  1. CCAnimation *animation=CCAnimation::animationWithFrames(anim,0.04f);   
  2. CCAnimate *animate = CCAnimate::actionWithAnimation(animation, false);  
 

用第一帧创建CCSprite,

最后精灵runAction

如果要执行多个动画,可以runAction(CCSequence::actions(...));

 

 

先将图片异步加载到缓存,异步加载看cocos2d-x源码就是多线程加载,用的pthread,以后使用图片就会更快,这一步一般都是游戏开始的时候用进度条来显示

 

 

Cpp代码 复制代码 收藏代码
  1. CCTextureCache::sharedTextureCache()->addImageAsync(garden_petal1,this,callfuncO_selector(Garden::loadingCallBack));   
  2.     //CCTexture2D *texture1=CCTextureCache::sharedTextureCache()->addImage(garden_petal1);   
  3.     CCTextureCache::sharedTextureCache()->addImageAsync(garden_petal2,this,callfuncO_selector(Garden::loadingCallBack));  

 在回调函数中处理进度条的显示

 

代码:

 

 

Java代码 复制代码 收藏代码
  1. //创建纹理   
  2. CCTexture2D *texture1=CCTextureCache::sharedTextureCache()->addImage(garden_petal1);   
  3.     CCTexture2D *texture2=CCTextureCache::sharedTextureCache()->addImage(garden_petal2);   
  4.     CCTexture2D *texture3=CCTextureCache::sharedTextureCache()->addImage(garden_petal3);   
  5.     CCTexture2D *texture4=CCTextureCache::sharedTextureCache()->addImage(garden_petal4);   
  6.     CCTexture2D *texture5=CCTextureCache::sharedTextureCache()->addImage(garden_petal5);   
  7.     CCTexture2D *texture6=CCTextureCache::sharedTextureCache()->addImage(garden_petal6);   
  8.     CCTexture2D *texture7=CCTextureCache::sharedTextureCache()->addImage(garden_petal7);   
  9.     CCTexture2D *texture8=CCTextureCache::sharedTextureCache()->addImage(garden_petal8);   
  10.     CCTexture2D *texture9=CCTextureCache::sharedTextureCache()->addImage(garden_petal9);   
  11.     CCTexture2D *texture10=CCTextureCache::sharedTextureCache()->addImage(garden_petal10);   
  12.     CCTexture2D *texture11=CCTextureCache::sharedTextureCache()->addImage(garden_petal11);   
  13.     CCTexture2D *texture12=CCTextureCache::sharedTextureCache()->addImage(garden_petal12);   
  14.   
  15. //用纹理创建帧   
  16.   
  17. CCSpriteFrame *frame1 = CCSpriteFrame::frameWithTexture(texture1,CCRectMake(100,100,600,870));   
  18.     CCSpriteFrame *frame2 = CCSpriteFrame::frameWithTexture(texture2,CCRectMake(100,100,600,870));   
  19.     CCSpriteFrame *frame3 = CCSpriteFrame::frameWithTexture(texture3,CCRectMake(100,100,600,870));   
  20.     CCSpriteFrame *frame4 = CCSpriteFrame::frameWithTexture(texture4,CCRectMake(100,100,600,870));   
  21.     CCSpriteFrame *frame5 = CCSpriteFrame::frameWithTexture(texture5,CCRectMake(100,100,600,870));   
  22.     CCSpriteFrame *frame6 = CCSpriteFrame::frameWithTexture(texture6,CCRectMake(100,100,600,870));   
  23.     CCSpriteFrame *frame7 = CCSpriteFrame::frameWithTexture(texture7,CCRectMake(100,100,600,870));   
  24.     CCSpriteFrame *frame8 = CCSpriteFrame::frameWithTexture(texture8,CCRectMake(100,100,600,870));   
  25.     CCSpriteFrame *frame9 = CCSpriteFrame::frameWithTexture(texture9,CCRectMake(100,100,600,870));   
  26.     CCSpriteFrame *frame10 = CCSpriteFrame::frameWithTexture(texture10,CCRectMake(100,100,600,870));   
  27.     CCSpriteFrame *frame11 = CCSpriteFrame::frameWithTexture(texture11,CCRectMake(100,100,600,870));   
  28.     CCSpriteFrame *frame12 = CCSpriteFrame::frameWithTexture(texture12,CCRectMake(100,100,600,870));   
  29.   
  30.   
  31. //添加到类似List的对象中   
  32.   
  33. CCMutableArray<CCSpriteFrame*>* anim=new CCMutableArray<CCSpriteFrame*>(12);   
  34.     anim->addObject(frame1);   
  35.     anim->addObject(frame2);   
  36.     anim->addObject(frame3);   
  37.     anim->addObject(frame4);   
  38.     anim->addObject(frame5);   
  39.     anim->addObject(frame6);   
  40.     anim->addObject(frame7);   
  41.     anim->addObject(frame8);   
  42.     anim->addObject(frame9);   
  43.     anim->addObject(frame10);   
  44.     anim->addObject(frame11);   
  45.     anim->addObject(frame12);   
  46.   
  47. //最用精灵运行动画   
  48.   
  49. CCAnimation *animation=CCAnimation::animationWithFrames(anim,0.4f);   
  50.     CCAnimate *animate = CCAnimate::actionWithAnimation(animation, false);   
  51.     CCSprite* txs=CCSprite::spriteWithSpriteFrame(frame1);   
  52.     txs->setPosition(ccp(100,100));   
  53.     this->addChild(txs,1);   
  54.     txs->runAction(animate);  

你可能感兴趣的:(cocos2d-x中的动画的使用)