Cocos2d-x可以有多种进度条的展示方式,进度条的种类是根据进度条运动的方向来区分,包括顺时针,逆时针,从左到右,从右到左,从下到上和从上到下6种方式,这和WP8的进度条是由很大的区别的。那么Cocos2d-x的进度条是需要用图片来进行展示,然后从不同的方向来渐渐把图片显示出来实现进度条的效果。

第一步需要创建一个CCProgressTo对象和CCProgressTimer对象,我们可以通过CCProgressTo::create(2, 100)方法创建CCProgressTo定义了进度条的时间和图片的百分比,第一个参数是时间是一个CCTime对象,第二个参数是结果显示图片的百分比。通过CCProgressTimer::progressWithFile("cat.png")方法创建CCProgressTimer定义了进度条的图片文件。

CCProgressTo *to1 = CCProgressTo::create(2, 100);
   CCProgressTimer *left = CCProgressTimer::progressWithFile("cat.png");

第二步通过CCProgressTimer指针设置进度条的类型。

调用setType设置类型,

kCCProgressTimerTypeRadialCW   顺时针生成

kCCProgressTimerTypeRadialCCW  逆时针生成

kCCProgressTimerTypeHorizontalBarLR 从左到右生成

kCCProgressTimerTypeHorizontalBarRL 从右到左生成

kCCProgressTimerTypeVerticalBarBT 从下到上生成

kCCProgressTimerTypeVerticalBarTB 从上到下生成

left->setType( kCCProgressTimerTypeRadialCW );

第三步添加到场景,设置位置和重复的频率

addChild(left);
  left->setPosition(CCPointMake(100, size.height*3/4));
  left->runAction( CCRepeatForever::create(to1));

示例代码:

         //逆时针转动
CCProgressTo *to1 = CCProgressTo::create(, );
CCProgressTimer *left = CCProgressTimer::progressWithFile("cat.png");
left->setType( kCCProgressTimerTypeRadialCW );
addChild(left);
left->setPosition(CCPointMake(, size.height*/));
left->runAction( CCRepeatForever::create(to1));
//顺时针转动
CCProgressTo *to2 = CCProgressTo::create(, );
CCProgressTimer *right = CCProgressTimer::progressWithFile("cat.png");
right->setType( kCCProgressTimerTypeRadialCCW );
addChild(right);
right->setPosition(CCPointMake(, size.height/));
right->runAction( CCRepeatForever::create(to2)); //从左到右
CCProgressTo *toHorizontalBar1 = CCProgressTo::create(, );
CCProgressTimer *leftHorizontalBar = CCProgressTimer::progressWithFile("cat.png");
leftHorizontalBar->setType( kCCProgressTimerTypeHorizontalBarLR );
addChild(leftHorizontalBar);
leftHorizontalBar->setPosition(CCPointMake(, size.height*/));
leftHorizontalBar->runAction( CCRepeatForever::create(toHorizontalBar1));
//从右到左
CCProgressTo *toHorizontalBar2 = CCProgressTo::create(, );
CCProgressTimer *rightHorizontalBar = CCProgressTimer::progressWithFile("cat.png");
rightHorizontalBar->setType( kCCProgressTimerTypeHorizontalBarRL );
addChild(rightHorizontalBar);
rightHorizontalBar->setPosition(CCPointMake(, size.height/));
rightHorizontalBar->runAction( CCRepeatForever::create(toHorizontalBar2)); //从底部到顶部
CCProgressTo *toVerticalBar1 = CCProgressTo::create(, );
CCProgressTimer *leftVerticalBar = CCProgressTimer::progressWithFile("cat.png");
leftVerticalBar->setType( kCCProgressTimerTypeVerticalBarBT );
addChild(leftVerticalBar);
leftVerticalBar->setPosition(CCPointMake(, size.height*/));
leftVerticalBar->runAction( CCRepeatForever::create(to1));
//从顶部到底部
CCProgressTo *toVerticalBar2 = CCProgressTo::create(, );
CCProgressTimer *rightVerticalBar = CCProgressTimer::progressWithFile("cat.png");
rightVerticalBar->setType( kCCProgressTimerTypeVerticalBarTB );
addChild(rightVerticalBar);
rightVerticalBar->setPosition(CCPointMake(, size.height/));
rightVerticalBar->runAction( CCRepeatForever::create(toVerticalBar2));

运行的效果:

 

最新文章

  1. android两种基本联网方式与一种第三方开源项目的使用
  2. [资料]PHP Yaf
  3. valueOf和toString
  4. 【BZOJ】【1529】 【POI2005】ska Piggy banks
  5. zend framework安装中出现的问题与总结
  6. React 实践项目 (一)
  7. 模仿J2EE的session机制的App后端会话信息管理
  8. maven入门(6)maven的生命周期
  9. ZooKeeper之(五)集群管理
  10. 通过iframe引入另外一个项目中的html片段到项目中,解决样式,高度,兼容等问题的策略
  11. docker-网络基础配置和dockerfile
  12. day 7-22 进程,线程,协程
  13. django.template.exceptions.TemplateDoesNotExist: rest_framework/api.html
  14. 洛谷P4438 [HNOI/AHOI2018]道路(dp)
  15. rls与rlsd
  16. shell常用符号的意义
  17. 〖Linux〗Shell十进制数值转换十六进制
  18. English trip -- MC(情景课)3 D
  19. Javakeyword之this
  20. java的IO总结(一)

热门文章

  1. HTML快速入门4
  2. 坚持不懈之linux haproxy的配置文件关键字查询手册
  3. LVM XFS增加硬盘分区容量(resize2fs: Bad magic number in super-block while)
  4. wordpress工作原理
  5. N-Queens | & N-Queens II
  6. 【UGUI】Canvas和Rect Transform
  7. 解决 Eclipse “alt+/”快捷键 无效
  8. 转圈游戏(codevs 3285)
  9. mysqlroot passwd
  10. Ubuntu 下搭建SVN服务器