cocos2d-x 百分比动作1 Progress半径模式

百分比动作是指按照指定的时间间隔变化百分比的一类动作。

实现类主要是ProgressTo 和 ProgressFromTo


常用方法:


ProgressTo* ProgressTo::create(float duration, float percent)

duration表示持续时间,percent表示目标百分比

代表从0%开始,结束于指定百分比的动作。


ProgressFromTo* ProgressFromTo::create(float duration, float fromPercentage, float toPercentage)

duration表示持续时间,fromPercentage表示初始百分比,toPercentage表示目标百分比

代表从指定百分比开始,结束与指定百分比的动作。


但是百分比动作不能直接被精灵等可见物体执行,而是需要将这些动作包裹进ProgressTimer对象来执行。

auto vSize = Director::getInstance()->getVisibleSize();

auto circle = Sprite::create("circle_blue.png");

auto progressTimer = ProgressTimer::create(circle);
progressTimer->setPosition(vSize / 2);//设置位置 在屏幕中心
progressTimer->setType(ProgressTimerType::RADIAL);//设置模式 RADIAL:半径 BAR:进度条 默认RADIAL
progressTimer->setMidpoint(Vec2(0.5, 0.5));//设置百分比效果参考点 默认(0,0)
progressTimer->setReverseProgress(false);//动作是否反向执行 默认false
progressTimer->setReverseDirection(false);//动作是否逆序执行 默认false
this->addChild(progressTimer);

auto progressTo = ProgressFromTo::create(2, 20, 80);
progressTimer->runAction(RepeatForever::create(progressTo->clone()));//为了方便展示 这里让动作重复执行


运行后会发现,动作只执行了一次,并没有重复执行。

但是,把ProgressTo::create(2, 100)改成ProgressFromTo::create(2, 0, 100), 就会发现动作是可以重复执行的,不知道这算不算一个Bug(coco2d-x 3.2版本)。


效果如下:


想要逆时针旋转,把setReverseDirection(true)设置为true就可以了,效果如下:



可以设置别的参考点,把setMidpoint(Vec2(0.6, 0.6)), 效果如下:


不一定要从0-100,把ProgressFromTo::create(2, 0, 100)改成ProgressFromTo::create(2, 20, 80),效果如下:


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值