cocos2d-x中的动画的使用

来源:互联网 发布:mac卸载java 8 编辑:程序博客网 时间:2024/06/05 01:28

cocos2d-x中的动画的使用       

        分类:            cocos2d-x1338人阅读评论(1)收藏举报

大体思想:

动画效果的使用:

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

Cpp代码 复制代码 收藏代码
  1. CCAnimation *animation=CCAnimation::animationWithFrames(anim,0.04f);  
  2. CCAnimate *animate = CCAnimate::actionWithAnimation(animation,false); 
[cpp] view plaincopyprint?
  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)); 
[cpp] view plaincopyprint?
  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

 

0 0
原创粉丝点击