cocos2d-x 3.0开发笔记:用progressTimer制作血槽

发表于2017-07-27
评论0 1.5k浏览

本篇文章给大家介绍如何使用progressTimer制作血槽。血条在游戏中经常会用到,考虑到没必要重复编写浪费时间,这里用最新版的API写个,方便以后调用。




以下代码使用的引擎版本是cocos2d-x 3.0rc0


1.RADIAL


  1. Sprite *bgSprite = Sprite::create("red.png");  
  2.     addChild(bgSprite, 1, 1);  
  3.   
  4.     Sprite *hpSprite = Sprite::create("green.png");  
  5.   
  6.     progressTimer = ProgressTimer::create(hpSprite);  
  7.       
  8.     progressTimer->setType(ProgressTimer::Type::RADIAL);  
  9.     progressTimer->setReverseProgress(true);  
  10.     progressTimer->setPercentage(30);//满值 100%  
  11.   
  12.     addChild(progressTimer, 0, 0);  



2.BAR


  1. Sprite *bgSprite = Sprite::create("box.png");  
  2.     addChild(bgSprite, 1, 1);  
  3.   
  4.     Sprite *hpSprite = Sprite::create("hp.png");  
  5.   
  6.     progressTimer = ProgressTimer::create(hpSprite);  
  7.   
  8.     progressTimer->setType(ProgressTimer::Type::BAR);  
  9.   
  10.     ///////////////////////////////////////////////////////////////////////////////////////////////////////  
  11.     //从左到右  
  12.     progressTimer->setMidpoint(ccp(0, 0.5));  
  13.     progressTimer->setBarChangeRate(ccp(1, 0));  
  14.   
  15.     //从右到左  
  16.     //    progressTimer->setMidpoint(ccp(1, 0.5));  
  17.     //    progressTimer->setBarChangeRate(ccp(1, 0));  
  18.   
  19.     //从上到下  
  20.     //    progressTimer->setMidpoint(ccp(0.5, 1));  
  21.     //    progressTimer->setBarChangeRate(ccp(0, 1));  
  22.   
  23.     //从下到上  
  24.     //    progressTimer->setMidpoint(ccp(0.5, 0));  
  25.     //    progressTimer->setBarChangeRate(ccp(0, 1));  
  26.     ///////////////////////////////////////////////////////////////////////////////////////////////////////////  
  27.   
  28.     progressTimer->setMidpoint(Point(0, 0.5));  
  29.     progressTimer->setBarChangeRate(Point(1, 0));  
  30.   
  31.     progressTimer->setPercentage(30);//满值 100%  
  32.   
  33.     addChild(progressTimer, 0, 0);  

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引

标签: