Cocos2dx提供了ProgressTimer进度条类,我们可以实现a. 游戏进入的等待 b. 游戏中的血条。
<ProgressTimer属性:>
(1). 类型: BAR(条状) , RADIAL(圆形)
(2). midpoint: 进度条变化的起始位置.
(3). barChangeRate: 进度条的变化方向(X,Y轴; 向哪个轴变化,对应的值不为0)
(1,0) --->表示向X轴方向变化;
(0,1) --->表示向Y轴方向变化;
进度条从哪个方向变化,由midpoint和barChangeRate共同决定。
midpoint:决定进度条变化的起始位置; barChangeRate: 决定进度条变化的方向。
(4). percentage: 进度条显示的比例。 (进度条的变化,就是设置这个值)
<进度条实例>
auto sprite = Sprite::create("pro.png");
//使用精灵创建进度条
ProgressTimer* gress = ProgressTimer::create(sprite);
//设置进度条的类型
gress->setType(ProgressTimer::Type::BAR);
//设置进度条的起始位置
gress->setMidpoint(Vec2(0,1));
//设置进度条的变化方向
gress->setBarChangeRate(Vec2(0,1));
//设置进度条的显示比例
gress->setPercentage(0);
gress->setAnchorPoint(Vec2(0, 0));
gress->setPosition(Vec2(200,200));
gress->setTag(1);
this->addChild(gress);
//更新update()函数
this->scheduleUpdate();
void Test::update(float t)
{
static int x = 0;
x += 10;
auto gress = (ProgressTimer*)this->getChildByTag(1);
gress->setPercentage(x);
}
我们最好将进度条和他自己的背景图片做成一个类(继承于精灵),使用的时候方便。
<进度条常见的变化:>
midpoint(0,0) ,barChangeRate(1,0)------------> 从左往右变化
midpoint(1,0) ,barChangeRate(1,0)------------> 从右往左变化
midpoint(0,1) ,barChangeRate(0,1)------------> 从上往下变化
midpoint(1,1) ,barChangeRate(0,1)------------> 从上往下变化
注意: 无论进度条怎么变化,都在这个矩形的范围内部。