實現代碼如下:
/*添加Loading動畫*/
auto sp1 = Sprite::create(LOADING_PROGRESS);
ProgressTimer*pt = ProgressTimer::create(sp1); //01
pt->setType(ProgressTimer::Type::BAR); //02
pt->setBarChangeRate(Vec2(1, 0)); //03
pt->setMidpoint(Vec2(0, 0)); //04
pt->runAction(ProgressFromTo::create(5, 0, 100)); //05
pt->setPosition(Vec2(visibleSize.width / 2 + origin.x, visibleSize.height / 2 + origin.y));
this->addChild(pt);
01. ProgressTimer是Node的子類。該類根據百分比來渲染顯示內部的Sprite對象。變化方向包括徑向(Radial),水平(Horizontal)或者垂直方向(vertical)。
02.進度條類型:RADIAL(逆時針徑向)、BAR(條形,一般是條形)。
03.setBarChangeRate 允許BAR類型進度條按照特定速率移動:是定義方向:Vec2(0,1)是自下而上、Vec2(1,0)是自左向右。(API沒怎麼看明白,,好像和實際情況不太一樣。。。存疑)
04.setMidpoint 是定義進度條開始位置:如果進度條類型是RADIAL,則setMidpoint更改中心點;如果進度條類型是BAR,則setMidpoint更改條形的成長;
從左到右Vec2(0,y);從右到左Vec2(1,y);從下到上Vec2(x,0);從上到下Vec2(x,1)。(測試了一下y,x的改變對效果貌似沒什麼影響)
05.根據持續時間、起始百分數、終止百分數,播放進度條。