1.CCProgressTo进度动作,条形进度条,扇形进度条
1 Bar形進度
| CCSprite * proBack = CCSprite::create("barback.png"); proBack->setPosition(ccp(winSize.width/2 - 100,winSize.height/2)); addChild(proBack); CCProgressTimer * left = CCProgressTimer::create(CCSprite::create("bar.png")); left->setPosition(ccp(winSize.width / 2 - 100, winSize.height / 2)); addChild(left); left->setType(kCCProgressTimerTypeBar); left->setMidpoint(ccp(1,0)); left->setBarChangeRate(ccp(1,1)); CCProgressTo * to = CCProgressTo::create(2, 120.0f); left->runAction(CCRepeatForever::create(to)); |
setMidPoint(ccp(x,y));
setMidpoint(ccp(1,0));
x和y均為[0,1]的數值表示進度起始點。比如ccp(0,0)左下角,ccp(1,1)右上角。
setBarChangeRate(ccp(x,y));
x和y均為[0,1]的數值表示,表示水平方向和豎直方向的進度。比如ccp(0,1)表示只有y軸方向有進度。
2 Radial
| CCSprite * proBack2 = CCSprite::create("radialback.png"); proBack2->setPosition(ccp(winSize.width / 2 + 100, winSize.height /2)); addChild(proBack2); CCProgressTimer * right = CCProgressTimer::create(CCSprite::create(“radial.png”)); right->setPosition(ccp(winSize.width/2 + 100,winSize.height / 2)); addChild(right); right->setType(kCCProgressTimerTypeRadial); right->setMidpoint(ccp(0.5,0.5)); CCProgressTo * to2 = CCProgressTo::create(2,100.0f); right->runAction(to2); |
3 案例
| T17CCProgressTo.h |
| #ifndef __T17CCProgressTo_H__ #define __T17CCProgressTo_H__ #include "cocos2d.h" #include "TBack.h" ? class T17CCProgressTo :public TBack { public: ??? static CCScene * scene(); ??? CREATE_FUNC(T17CCProgressTo); ??? bool init(); }; ? #endif |
| T17CCProgressTo.cpp |
| #include "T17CCProgressTo.h" #include "AppMacros.h" CCScene * T17CCProgressTo::scene() { ??? CCScene * scene = CCScene::create(); ??? T17CCProgressTo * layer = T17CCProgressTo::create(); ??? scene->addChild(layer); ??? return scene; } ? bool T17CCProgressTo::init() { ??? TBack::init(); ? ??? //創建一個CCSprite ??? CCSprite * proBack = CCSprite::create("barback.png"); ??? //設置精靈所在的位置 ??? proBack->setPosition(ccp(winSize.width / 2 - 100, winSize.height / 2)); ??? addChild(proBack); ? ??? //創建一個CCProgressTimer作為進度條 ??? CCProgressTimer * left = CCProgressTimer::create(CCSprite::create("bar.png")); ??? //設置進度條所在的位置上。 ??? left->setPosition(ccp(winSize.width / 2 - 100, winSize.height / 2)); ??? //cpp中的 ??? //第一個參數表示的是控制進度條填滿的方向, ??? //0表示從左往右運行, ??? //1表示進度條往左邊運行 ??? //第二個參數表示上下填滿的順序 ??? //0表示從下往上運行。 ??? //1表示從上往下運行。 ??? //注意:者兩個參數的范圍都是從0~1 ??? //當中間值設置成為0.5時,進度的顯示順序是從中間開始的 ??? left->setMidpoint(ccp(0, 0.5)); ??? //當設置成1,1的時候上下,左右都能夠填滿。 ??? left->setBarChangeRate(ccp(0, 1)); ??? //設置類型 ??? left->setType(kCCProgressTimerTypeBar); ??? addChild(left); ??? //動作,表示兩秒鐘內填滿100.0f的值 ??? CCProgressTo * to = CCProgressTo::create(2, 100.0f); ??? //通過下面的方式讓這個進度條循環的填充值 ??? left->runAction(CCRepeatForever::create(to)); ? ??? //創建一個radial的進度條。背景色 ??? CCSprite * proBack2 = CCSprite::create("radialback.png"); ??? //設置radial的顯示位置 ??? proBack2->setPosition(ccp(winSize.width / 2 + 100, winSize.height / 2)); ??? addChild(proBack2); ? ??? CCProgressTimer * right = CCProgressTimer::create(CCSprite::create("radial.png")); ??? //設置它的顯示位置 ??? right->setPosition(ccp(winSize.width / 2 + 100, winSize.height / 2)); ??? //表示它的中心點位置,圓心的位置在圓的正中心 ??? right->setMidpoint(ccp(0.5, 0.5)); ??? right->setType(kCCProgressTimerTypeRadial); ??? addChild(right); ??? //兩秒鐘內填充100% ??? CCProgressTo * to2 = CCProgressTo::create(2, 100.0f); ? ??? right->runAction(CCRepeatForever::create(to2)); ? ??? return true; } |
| 運行結果:
|
?
總結
以上是生活随笔為你收集整理的1.CCProgressTo进度动作,条形进度条,扇形进度条的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 乐风仪表盘显示车门没关,不显示哪边的车门
- 下一篇: 哈弗h6国潮版故障灯亮图解?