cocos2dx 中 ProgressTimer的使用

创建

 auto left = ProgressTimer::create(Sprite::create(s_pathBlock));

设置类型

left->setType(ProgressTimer::Type::RADIAL);

有两种类型,一种是RADIAL,就是圆周的渐次显示。可以实现游戏中的一些技能CD效果。
还有一种就是BAR,一般用来实现血条

设置中心点

setMidPoint(Vec(0,0))//不设置的话默认是(0.5,0.5)

对于RADIAL类型,默认是顺时针渐次显示。如果需要逆时针,则可以用

 right->setReverseProgress(true);

对于BAR类型,是从MidPoint向两边渐次显示的,所以,要实现血条,因为血条是随着血量的增加向右增加的,就把midpoint设置为(0,0),但是同时也需要设置

left->setBarChangeRate(Vec2(1, 0));//0代表,在y轴上是100%的状态

然后就可以通过setPercentage方法来改变显示的百分比了

当然也可以让PropgressTimer runAction(ProgressTo(2,100))来实现变化

总结

对于RADIAL比较好理解。
对于BAR类型:
midPoint就跟Node里面的锚点差不多,setBarChangeRate(Vec2(1,0))里面的vec2,数值则是刚好相反的,比如0,代表已经100%显示了,1代表没有显示任何东西。
举个例子:
有一个100*100的sprite,设置midPoint为(0.5,0.5),setBarChangeRate(0.3,0.7)
那么初始的情况就是在x轴上,0-15还没显示,85-100还没显示,在y轴上,0-35还没显示,65-100还没显示。所以已经显示的一个矩形就是70*30的

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值