CCProgressTimer,建立使用這個節點能夠大體實現兩個做用的效果:this
其一:在遊戲中幾乎大部分的遊戲啓動界面都是遊戲加載畫面,那麼用到的通常是進度條提示加載進度,其使用的就是CCProgressTimer。spa
其二:在遊戲中須要對精靈的出現等動做製做一些漸顯的效果。.net
(1)類型通常就是兩種:component
- typedef enum {
-
- kCCProgressTimerTypeRadial,
-
- kCCProgressTimerTypeBar,
- } CCProgressTimerType;
(2)類型1:radial(環形)blog
- CCSize wSize = CCDirector::sharedDirector()->getWinSize();
- progressTimer = CCProgressTimer::create(CCSprite::create("progress.gif"));
- progressTimer->setType(kCCProgressTimerTypeRadial);
-
-
- progressTimer->setReverseProgress(true);
- progressTimer->setPosition(wSize.width/2,wSize.height/2);
- this->addChild(progressTimer);
(3)類型2:bar (條形:包括vertical 和 horizontal)
漸變的方向問題:遊戲
vertical豎直方法包括從上到下和從下到上;ip
horizontal水平方向包括從左到右和從右到左。ci
這裏涉及到兩個設置參數:get
首先是setMidpoint設置起點string
其次是setBarChangeRate設置變化rate
若是不用變化的方向,則設置該方向爲0,不然設置爲1。
- CCSize wSize = CCDirector::sharedDirector()->getWinSize();
- progressTimer = CCProgressTimer::create(CCSprite::create("progress.gif"));
- progressTimer->setType(kCCProgressTimerTypeBar);
-
-
- progressTimer->setMidpoint(ccp(0, 0.5));
- progressTimer->setBarChangeRate(ccp(1, 0));
-
-
-
-
-
-
-
-
-
-
-
-
-
- progressTimer->setPosition(wSize.width/2,wSize.height/2);
- this->addChild(progressTimer);
(4) 執行變化
①、若是是要實現精靈漸變的顯示效果:
建立CCProgressTo或者是CCProgressFromTo動做,讓CCProgressTimer執行。
CCProgressTo和CCProgressFromTo的區別是:
前者:Progress to percentage(初始化有兩個參數)(float duration, float fPercent)
後者:Progress from a percentage to another percentage(初始化有三個參數)(float duration, float fFromPercentage, float fToPercentage)
- CCProgressTo *progressTo = CCProgressTo::create(2.0, 100);
-
-
- progressTimer->runAction(CCRepeatForever::create(progressTo));
②、若是是要實現加載進度條的效果:
須要重載update方法,在這個方法中實現進度條percentage的變化。
- void HelloWorld::update(float dt)
- {
- float percentage = progressTimer->getPercentage();
-
- if (percentage < 100) {
- percentage += 1;
- progressTimer->setPercentage(percentage);
- }
- }
關於CCProgressTimer的更加詳細的使用 demo能夠參看引擎中sample中的ActionProgressTest。