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的

你可能感兴趣的:(游戏,cocos2d-x)