日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Cocos2d-x 中 CCProgressTimer

發布時間:2024/9/5 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。