您好,登錄后才能下訂單哦!
在游戲開發中,我們通常需要做一個游戲的進度條來過渡游戲的場景切換或者顯示游戲資源的加載進度。
同樣的來說,進度條可以在角色扮演游戲中作為玩家或者怪物頭頂的生命條,或者消除類休閑游戲的倒計時等。進度條多種多樣,如何合理的使用根據游戲的項目需求而定。
在cocos2dx中,進度條使用 ProgressTimer 來實現,首先要定義精靈綁定進度條。
打開我們創建的項目cocosxuexi,直接改寫init()初始化里的代碼來實現,先把以前寫的代碼注釋掉。
1、首先在HelloWorldScene.h文件里定義2個指針。
public:
virtualvoid update(float dt);//默認調度器
private:
ProgressTimer* progress1;//定義進度條指針
LabelTTF* numsTTF;//定義標簽指針
2、在HelloWorldScene.cpp里init()方法里創建一個進度條和一個進度條的邊框
Size visibleSize = Director::getInstance()->getVisibleSize();
Vec2 origin = Director::getInstance()->getVisibleOrigin();
//創建一個進度條精靈邊框
auto progressbgSprite=Sprite::create("loadKuang.png");
progressbgSprite->setPosition(Vec2(origin.x + visibleSize.width/2,origin.y + visibleSize.height/2));
this->addChild(progressbgSprite, 1);
//創建一個進度條精靈
auto progressSprite=Sprite::create("loadBar.png");
progress1=ProgressTimer::create(progressSprite);
progress1->setType(kCCProgressTimerTypeBar);
progress1->setPosition(Vec2(origin.x + visibleSize.width/2,origin.y + visibleSize.height/2));
//進度動畫運動方向,可以多試幾個值,看看效果
progress1->setMidpoint(Vec2(0, 0));
//進度條寬高變化
progress1->setBarChangeRate(Vec2(1, 0));
progress1->setPercentage(0); //設置進度條百分比為0%
this->addChild(progress1, 1);
numsTTF=CCLabelTTF::create("0", "Thonburi", 18);
numsTTF->setPosition(origin.x + visibleSize.width/2,origin.y + visibleSize.height/2);
this->addChild(numsTTF, 1);
scheduleUpdate(); //默認調度器,調用update()方法
3、在HelloWordScene.cpp里實現update()方法
voidHelloWorld::update(floatdt)
{
float cu=progress1->getPercentage(); //獲取百分比
cu=cu+1.0f; //進度條進度 每次加1%
progress1->setPercentage(cu);
if (cu <= 100) //如果進度小于等于100%
{
auto str1 = String::createWithFormat("%.2f%%",cu);
numsTTF->setString(str1->getCString()); //設置標簽顯示內容
}
//如果進度條達到100%,則停止
else
{
unscheduleUpdate();//停止默認調度器
}
}
到此一個可用的進度條就已經實現了。如果用來實現場景自動切換,直接在update()里停止調度器后就實現自動切換操作。
效果預覽:
Cocos2dx學習筆記12:cocos2dx進度條(ProgressTimer)
http://www.byjth.com/biji/32.html
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。