CCProgressTimer實現進度條

2021-06-22 21:05:26 字數 2370 閱讀 3184

原帖位址

cocos2d-x提供了ccprogresstimer類可以方便地實現進度條的功能,cocos2d-x 1.x版本與cocos2d-x 2.x版本對progresstimer的型別提供的不同,2.x版本只提供了以下2種:

typedef enum

ccprogresstimertype;

另外,cocos2d-iphone與cocos2d-x除了實現語言不同外,還有很大的差異,比如cocos2d-x初始化乙個例項時用的是create()函式,cocos2d用的是各種initwith***,cocos2d中的oc語法中的訪問器容易誤導c++出身的程式設計師,例如點操作符表示呼叫getter或setter方法,而不是c++中的訪問public資料成員。

例子中**功能為:

虛擬乙個資源載入的進度條,一紅一綠,分別增加和減少,載入完畢後,會執行乙個顏色漸變的切換場景,然後進入主場景,具體效果請看以下url:

以下為具體**,老習慣,不碼字,看注釋:

1. 標頭檔案,其中有2個私有資料成員,分別為進度條1和進度條2:

#include "

cocos2d.h

"class loadgame : public

cocos2d::cclayer

;#endif

//__helloworld_scene_h__

2. loadgame類具體實現

//

建立二個精靈,一綠一紅

ccsprite *pssprite1 = ccsprite::create("

green.png");

ccsprite *pssprite2 = ccsprite::create("

red.png");

//利用精靈建立進度條,並設定一些屬性

progresstime1 = ccprogresstimer::create(pssprite1); //

初始化ccprogresstimer

progresstime1->setpercentage(0.0f); //

設定初始百分比的值

progresstime1->setscale(3); //

設定進度條大小為原始的3倍

progresstime1->setbarchangerate(ccp(1, 0)); //

設定進度條的長度和高度開始變化的大小

progresstime1->settype(kccprogresstimertypebar); //

設定進度條為水平

progresstime1->setposition(ccp(size.width/2, size.height/2)); //

放置進度條位置

this->addchild(progresstime1, 100); //

加入layer中

//利用精靈建立進度條,並設定一些屬性

progresstime2 = ccprogresstimer::create(pssprite2); //

初始化ccprogresstimer

progresstime2->setpercentage(100.0f); //

設定初始百分比的值

progresstime2->setscale(3); //

設定進度條大小為原始的3倍

progresstime2->setbarchangerate(ccp(1, 0)); //

設定進度條的長度和高度開始變化的大小

progresstime2->settype(kccprogresstimertypebar); //

設定進度條為水平

progresstime2->setposition(ccp(size.width/2, size.height/2 - 30)); //

放置進度條位置

this->addchild(progresstime2, 101); //

加入layer中

this->scheduleupdate(); //

呼叫定時器更新進度條

3. 定時器的具體實現:

void loadgame::update(float

dt)

//如果進度條達到100%,則進入過渡場景,過渡場景會在2秒後進入主場景

else

}

以下三個場景過渡特效需要檢測opengl

版本是否支援:

ccconfiguration::sharedconfiguration()->getglesversion() 

<= gles_ver_1_0如果為真則為不支援

詳解CCProgressTimer 進度條

遊戲開發中難免用到進度條,例如做一些遊戲技能的cd時間等都會使用到 那麼cocos2d當然也封裝了進度條,但是不太理想,如果童鞋們用過就應該知道,那麼今天介紹兩個知識點,第一 介紹cocos2d中的進度條ccprogresstimer如何使用 第二點 修改cocos2d封裝的ccprogressti...

css實現進度圓環

圓環實現原理 1.左邊乙個扇形 右邊乙個扇形組成乙個圓環的圓圈 2.clip裁剪左扇形和右扇形,使其變為圓環形式 3.隱藏圓圈容器的左半邊,只顯示右半邊,讓左扇形向右開始逐步旋轉,通過轉動左扇形,隱藏右扇形,使左扇形旋轉到右邊顯示,從而展現圓環進度50 以內的視覺效果 4.當左扇形旋轉回左邊後,右邊...

帶進度的圓形進度條的實現

今天通過自定義view來實現乙個帶進度的圓形進度條,實現的最終效果如下圖所示 現在來講一下設計的思路 首先這個進度條可以自定義小圓角矩形的數量 小圓角矩形大小 小圓角矩形的圓角角度 未完成進度時的顏色,完成進度時的顏色 文字大小 文字顏色 圓形半徑,所以需要自定義這些引數 那如何畫這個圓形進度呢?我...