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

运行的效果:

 

[Cocos2d-x For WP8]Progress 进度条的更多相关文章

  1. 微信小程序组件解读和分析:六、progress进度条

    progress进度条组件说明: 进度条,就是表示事情当前完成到什么地步了,可以让用户视觉上感知事情的执行.progress进度条是微信小程序的组件,和HTML5的进度条progress类似. pro ...

  2. 微信小程序 progress 进度条 内部圆角及内部条渐变色

    微信小程序progress进度条内部圆角及渐变色 <view class="progress-box"> <progress percent="80&q ...

  3. android中progress进度条的使用

    activity.xml: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" ...

  4. progress 进度条

      进度条.  属性名 类型 默认值 说明 percent Float 无 百分比0~100 show-info Boolean false 在进度条右侧显示百分比 stroke-width Numb ...

  5. progress进度条的样式修改

    由于公司在做的公众号上需要进度条,我就想着用progress标签,可是progress标签很难修改样式,因而在网上查询了一番. 现在总结一下. progress是H5新标签,主要用于显示进度条.由于他 ...

  6. bootstrap3的 progress 进度条

    : 2.3版               3.0版 .bar .progress-bar .bar-* .progress-bar-* 2.代码: <!DOCTYPE html PUBLIC & ...

  7. 使用div实现progress进度条

    在百度上搜了很多方法去修改HTML5 progress的样式,然而并没有实现. 所以自己用div实现了一个. 简单粗暴(*^-^*)  可以在CSS里改样式,可以JS里改进度. <div cla ...

  8. html。PROGRESS进度条使用测试

    效果图 : 代码: ----------------------------------- //本文来自:https://www.cnblogs.com/java2sap/p/11199126.htm ...

  9. 详解HTML5中的进度条progress元素简介及兼容性处理

    一.progress元素基本了解 1.基本知识 progress元素属于HTML5家族,指进度条.IE10+以及其他靠谱浏览器都支持. 注释:Internet Explorer 9 以及更早的版本不支 ...

随机推荐

  1. poj 3020 最短路径覆盖 Antenna Placement

    Antenna Placement Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7329   Accepted: 3635 ...

  2. Linux Tomcat 简介

    如今,基于Web的应用越来越多,传统的Html已经满足不了如今的需求.我们需要一个交互式的Web,于是便诞生了各种Web语言.如Asp,Jsp,Php等.当然,这些语言与传统的语言有着密切的联系,如P ...

  3. 算法训练 Torry的困惑

    问题描述 Torry从小喜爱数学.一天,老师告诉他,像2.3.5.7……这样的数叫做质数.Torry突然想到一个问题,前10.100.1000.10000……个质数的乘积是多少呢?他把这个问题告诉老师 ...

  4. 33.在O(1)时间删除链表结点[DeleteListNode]

    [题目] 给定链表的头指针和一个结点指针,在O(1)时间删除该结点.链表结点的定义如下:  C++ Code  123456   struct ListNode {     int        m_ ...

  5. 【转】SQL删除重复记录,只保留其中一条

    SQL:删除重复数据,只保留一条用SQL语句,删除掉重复项只保留一条在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢 1.查找表中多余的重复记录,重复记录是根据单个字段(peop ...

  6. iOS 和Android中的基本日期处理

    提到日期处理,主要有2个参数,一个是所在的时区,一个是所用的日历方法. 主要涉及2大类问题,一类是日期类型和字符串之间的转化,另一类是日期的计算问题.ios和android都提供了相应的类来处理问题. ...

  7. PHP---TP框架---添加数据-----有三种方式

    添加数据 添加数据有三种方式: 第一种: <?php namespace Home\Controller;//这个文件的命名空间 use Think\Controller;//use使用哪一个而 ...

  8. Oracle的锁表与解锁

    Oracle的锁表与解锁 SELECT /*+ rule */ s.username, decode(l.type,'TM','TABLE LOCK', 'TX','ROW LOCK', NULL) ...

  9. Mysql 自动化任务

    Mysql自动化任务,有两种:基于事件,基于时间. 基于事件,可由触发器来实现.具体触发器的编写比较简单,其语法规范可参照:http://www.jb51.net/article/59552.htm. ...

  10. unix PS命令和JPS命令的区别

    1.JPS介绍 用来查看基于HotSpot的JVM里面中,所有具有访问权限的Java进程的具体状态, 包括进程ID,进程启动的路径及启动参数等等,与unix上的ps类似,只不过jps是用来显示java ...