Cocos2d-x 中 CCProgressTimer
CCProgressTimer,創建使用這個節點可以大致實現兩個作用的效果:
其一:在游戲中幾乎大部分的游戲啟動界面都是游戲加載畫面,那么用到的一般是進度條提示加載進度,其使用的就是CCProgressTimer。
其二:在游戲中需要對精靈的出現等動作制作一些漸顯的效果。
(1)類型一般就是兩種:
1 typedef enum { 2 /// Radial Counter-Clockwise 3 kCCProgressTimerTypeRadial, 4 /// Bar 5 kCCProgressTimerTypeBar, 6 } CCProgressTimerType;①類型1:radial(環形)
1 CCSize wSize = CCDirector::sharedDirector()->getWinSize(); 2 progressTimer = CCProgressTimer::create(CCSprite::create("progress.gif")); 3 progressTimer->setType(kCCProgressTimerTypeRadial); 4 // 默認的情況下,環形漸變的方向是:順時針 5 // 改變其漸變的方向 Makes the ridial CCW (逆時針) 6 progressTimer->setReverseProgress(true); 7 progressTimer->setPosition(wSize.width/2,wSize.height/2); 8 this->addChild(progressTimer);②類型2:bar ?(條形:包括vertical 和 horizontal)
漸變的方向問題:
vertical豎直方法包括從上到下和從下到上;
horizontal水平方向包括從左到右和從右到左。
這里涉及到兩個設置參數:
首先是setMidpoint設置起點
其次是setBarChangeRate設置變化rate
如果不用變化的方向,則設置該方向為0,否則設置為1。
?
1 CCSize wSize = CCDirector::sharedDirector()->getWinSize(); 2 progressTimer = CCProgressTimer::create(CCSprite::create("progress.gif")); 3 progressTimer->setType(kCCProgressTimerTypeBar); 4 5 //從左到右 6 progressTimer->setMidpoint(ccp(0, 0.5)); 7 progressTimer->setBarChangeRate(ccp(1, 0)); 8 9 //從右到左 10 // progressTimer->setMidpoint(ccp(1, 0.5)); 11 // progressTimer->setBarChangeRate(ccp(1, 0)); 12 13 //從上到下 14 // progressTimer->setMidpoint(ccp(0.5, 1)); 15 // progressTimer->setBarChangeRate(ccp(0, 1)); 16 17 //從下到上 18 // progressTimer->setMidpoint(ccp(0.5, 0)); 19 // progressTimer->setBarChangeRate(ccp(0, 1)); 20 21 progressTimer->setPosition(wSize.width/2,wSize.height/2); 22 this->addChild(progressTimer);(2) 執行變化
①、如果是要實現精靈漸變的顯示效果:
創建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)
1 CCProgressTo *progressTo = CCProgressTo::create(2.0, 100); 2 //等價于: 3 //CCProgressFromTo *progressFromTo = CCProgressFromTo::create(2.0, 0, 100); 4 progressTimer->runAction(CCRepeatForever::create(progressTo));②、如果是要實現加載進度條的效果:
需要重載update方法,在這個方法中實現進度條percentage的變化。
1 this->scheduleUpdate(); 1 void HelloWorld::update(float dt) 2 { 3 float percentage = progressTimer->getPercentage(); 4 5 if (percentage < 100) { 6 percentage += 1; 7 progressTimer->setPercentage(percentage); 8 } 9 }?
轉載于:https://www.cnblogs.com/atong/p/3309785.html
總結
以上是生活随笔為你收集整理的Cocos2d-x 中 CCProgressTimer的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: cmd 发送接收邮件
- 下一篇: 建议15: 使用dynamic来简化反射