1
2
3
4
|
//
RADIAL
//扇形进度计时器
BAR
//条形进度计时器
//
|
1
2
3
4
5
6
7
|
//
//几秒内从0%变化到指定进度
CCProgressTo::create(
'时间'
,
'变化到百分之几'
);
//几秒内从a%进度变化到b%进度
CCProgressFromTo::create(
'时间'
,
'从百分之几'
,
'变化到百分之几'
);
//
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
//
class
CCProgressTimer :
public
CCNodeRGBA
{
/**
* 创建方法 create
*/
//精灵图片作为进度条
CCProgressTimer::create(CCSprite* sp);
/**
* 属性设置
* setSprite , setPercentage , setType
*/
//设置进度条所使用的精灵图片
void
setSprite(CCSprite *pSprite);
CCSprite* getSprite();
//设置进度百分值[0,100]
void
setPercentage(
float
fPercentage);
float
getPercentage();
//设置进度条样式
// kCCProgressTimerTypeRadial 扇形进度计时器
// kCCProgressTimerTypeBar 条形进度计时器
void
setType(CCProgressTimerType type);
CCProgressTimerType getType();
//反进度显示
//条形:从100到0。
//扇形:false顺时针,true逆时针
void
setReverseProgress(
bool
reverse);
/**
* 进度条设置
* setMidpoint , setBarChangeRate
*/
//设置进度条起始的中心位置,范围[0,1](默认图片中点ccp(0.5,0.5))
void
setMidpoint(CCPoint);
CCPoint getMidpoint();
//用于做进度条所占的图片比例
void
setBarChangeRate(CCPoint);
CCPoint getBarChangeRate();
/**
* 父类继承
* setAnchorPoint , setColor , setOpacity
*/
//设置锚点
void
setAnchorPoint(CCPoint anchorPoint);
//设置颜色
virtual
void
setColor(
const
ccColor3B& color);
virtual
const
ccColor3B& getColor()
const
;
//设置透明度
virtual
void
setOpacity(GLubyte opacity);
virtual
GLubyte getOpacity()
const
;
};
//
|
1
2
3
4
5
6
|
//
setBarChangeRate( ccp(1,0) ) :
//只有X轴变化。 (起始X轴不显示)
setBarChangeRate( ccp(0,1) ) :
//只有Y轴变化。 (起始Y轴不显示)
setBarChangeRate( ccp(1,1) ) :
//X,Y轴都变化。(起始X,y轴都不显示)
setBarChangeRate( ccp(0.5,0.5) ):
//X,Y轴都变化。(起始X,y轴都已显示一半)
//
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
//
//当条形进度条样式为:setBarChangeRate( ccp(1,0) )
ccp(1,0):
"从右到左显示"
ccp(0.5,0):
"从中间到两边显示"
ccp(0,0):
"从左到右显示"
//当条形进度条样式为:setBarChangeRate( ccp(0,1) )
ccp(0,1):
"从上到下显示。"
ccp(0,0.5): "从中间到两边显示。
ccp(0,0):
"从下到上显示。"
//当条形进度条样式为:setBarChangeRate( ccp(1,1) )
ccp(0,1):
"X从左到右显示, Y从上到下显示"
ccp(0,0.5):
"X从左到右显示, Y从中间到两边显示"
ccp(1,0):
"X从右到左显示, Y从下到上显示"
ccp(0.5,0):
"X从中间到两边显示,Y从下到上显示"
ccp(0,0):
"X从左到右显示, Y从下到上显示"
ccp(0.5,0.5):
"X从中间到两边显示,Y从中间到两边显示"
ccp(1,1):
"X从右到左显示, Y从上到下显示"
//
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
//
//条形进度条pro1
CCSprite* bg1 = CCSprite::create(
"Icon.png"
);
CCProgressTimer* pro1 = CCProgressTimer::create(bg1);
pro1->setPosition( ccp(130, 100) );
this
->addChild(pro1);
//条形,定义进度条方式:从右到左显示
pro1->setType(kCCProgressTimerTypeBar);
pro1->setBarChangeRate( ccp(1, 0) );
pro1->setMidpoint( ccp(1, 0) );
//pro1->setReverseProgress(true); //反进度显示
//扇形进度条pro2
CCSprite* bg2 = CCSprite::create(
"Icon.png"
);
CCProgressTimer* pro2 = CCProgressTimer::create(bg2);
pro2->setPosition( ccp(350, 100) );
this
->addChild(pro2);
//扇形,圆心ccp(0.3 , 0.7)
pro2->setType(kCCProgressTimerTypeRadial);
pro2->setMidpoint( ccp(0.3, 0.7) );
//pro2->setReverseProgress(true); //逆时针
//
|
1
2
3
4
5
6
7
8
|
//
//进度动作
CCProgressTo* ac1 = CCProgressTo::create(2.0f, 100);
CCProgressFromTo* ac2 = CCProgressFromTo::create(2.0f, 30, 100);
pro1->runAction( CCRepeatForever::create(ac1) );
//2秒内,从0到100
pro2->runAction( CCRepeatForever::create(ac2) );
//2秒内,从30到100
//
|
1
2
3
4
|
//
pro1->setReverseProgress(
true
);
//反进度显示
pro2->setReverseProgress(
true
);
//逆时针
//
|