cocos2dx3.x实现ProgressTimer显示资源加载进度

1.效果图

2.代码参考

 

//create the progresser
const auto progresserBgSprite = Sprite::create("0.png");
progresserBgSprite->setRotation(90);
progresserBgSprite->setPosition(Vec2(size.width / 2, progresserBgSprite->getContentSize().width / 2));
this->addChild(progresserBgSprite);
progresser = ProgressTimer::create(Sprite::create("3.png"));
progresser->setType(ProgressTimerType::BAR);
progresser->setMidpoint(Vec2(0.5, 0));
progresser->setRotation(90);
progresser->setPosition(progresserBgSprite->getPosition());
progresser->setBarChangeRate(Vec2(0, 1));
progresser->setPercentage(percentage);
this->addChild(progresser);
//init the percentageLabel
std::string info = std::to_string(percentage);
info.append("%");
percentageLabel = Label::createWithTTF(info, "fonts/arial.ttf", 20);
percentageLabel->setPosition(progresser->getPosition());
this->addChild(percentageLabel);

3.说明

   我的原图为竖直的,所以做了旋转。一个进度条需要三个Node,ProgressTimer的背景图Sprite,ProgressTimer和一个显示进度的Label,三个Node的位置均设置为背景图位置。

  3个关键函数:

  setType()设置类型,进度条一般设置为BAR、

 setMidPoint()设置进度条的起始位置,具体设为多少可以查看方法源码注释。

 setChangRate()设置进度条在增长时保持高度不变还是宽度不变,即X和Y上比率。

最后需要通过调度器Schedule根据资源已加载的数量通过setPercentage()改变进度。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值