cocos2d-x 进度条的实现

cocos2d-x的进度条函数CCProgressTimer,我们可以这样定义:

     CCProgressTimer *left = CCProgressTimer::create(CCSprite::create(s_pPathSister1));//s_pPathSister1为图片的路径

然后我们设置进度条的属性:

    left->setType(kCCProgressTimerTypeBar);//kCCProgressTimerTypeBar为进度条的形式

cocos2d-x封装了2中显示方式:

    条形:kCCProgressTimerTypeBar

    圆弧形:kCCProgressTimerTypeRadial

还有很重要的属性:setMidpoint()  //设置中心点,对圆弧来说,就是中心点,但对条形来说,中心点不是条形的中心

// 它是一个表示动画方向的成员变量值,如果是横向方向,则设为(1,0),如果是纵向方向,则设为(0,1); 

下面是两种情况的例子

圆弧进度条:

    CCSprite* sprite = CCSprite::create("test2.png");

    CCProgressTimer* jdt = CCProgressTimer::create(sprite);
     jdt->setType(kCCProgressTimerTypeRadial);
     //jdt->setBarChangeRate(ccp(1, 0));
     //jdt->setMidpoint(ccp(0,0));
    jdt->setPosition(ccp(524,348));
    this->addChild(jdt);

    CCProgressTo* action1 = CCProgressTo::create(20, 100);
    jdt->runAction(CCRepeatForever::create(action1));

 

条形进度条:

    CCSprite* sprite = CCSprite::create("test2.png");

    CCProgressTimer* jdt = CCProgressTimer::create(sprite);
     jdt->setType(kCCProgressTimerTypeBar);
     jdt->setBarChangeRate(ccp(1, 0));
     jdt->setMidpoint(ccp(0,0));
    jdt->setPosition(ccp(524,348));
    this->addChild(jdt);

    CCProgressTo* action1 = CCProgressTo::create(20, 100);
    jdt->runAction(CCRepeatForever::create(action1));

 

 

 

Cocos2d-x 2.7 版本中,你可以使用 `CCProgressTimer` 类来创建一个进度条来显示数据加载的进度。具体的实现步骤如下: 1. 创建一个进度条对象 ``` CCProgressTimer* progress = CCProgressTimer::create(CCSprite::create("progressbar.png")); progress->setType(kCCProgressTimerTypeBar); progress->setMidpoint(ccp(0, 0.5)); progress->setBarChangeRate(ccp(1, 0)); progress->setPosition(ccp(winSize.width / 2, winSize.height / 2)); this->addChild(progress); ``` 其中,`progressbar.png` 是进度条的图片,可以自己定义。`setType` 方法设置进度条的类型为水平条,`setMidpoint` 方法设置进度条的起点为左侧中间位置,`setBarChangeRate` 方法设置进度条的变化速率为水平方向。 2. 加载数据时更新进度条 在加载数据时,可以根据已经加载的数据量和总数据量来计算加载进度,并将进度条的百分比设置为相应的值。 ``` // 加载数据的过程中 int loadedData = 0; // 已经加载的数据量 int totalData = 100; // 总数据量 float percent = (float)loadedData / totalData * 100; // 计算进度百分比 progress->setPercentage(percent); // 设置进度条的百分比 ``` 其中,`loadedData` 表示已经加载的数据量,`totalData` 表示总数据量,`percent` 表示已经加载的数据量占总数据量的百分比,`setPercentage` 方法将进度条的百分比设置为相应的值。 3. 加载完成时隐藏进度条 当数据加载完成时,可以将进度条隐藏起来。 ``` // 数据加载完成后 progress->setVisible(false); // 隐藏进度条 ``` 这样,你就可以在 Cocos2d-x 2.7 中使用 `CCProgressTimer` 类来创建一个数据加载进度条了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值