1
2
3
4
|
//
RADIAL
//扇形进度计时器
BAR
//条形进度计时器
//
|
4
5
6
7
//几秒内从0%变化到指定进度
CCProgressTo::create(
'时间'
,
'变化到百分之几'
);
//几秒内从a%进度变化到b%进度
CCProgressFromTo::create(
'从百分之几'
);
2、CCProgressTimer
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]
setPercentage(
float
fPercentage);
getPercentage();
//设置进度条样式
// kCCProgressTimerTypeRadial 扇形进度计时器
// kCCProgressTimerTypeBar 条形进度计时器
setType(CCProgressTimerTypetype);
CCProgressTimerTypegetType();
//反进度显示
//条形:从100到0。
//扇形:false顺时针,true逆时针
setReverseProgress(
bool
reverse);
/**
* 进度条设置
* setMidpoint,setBarChangeRate
*/
//设置进度条起始的中心位置,范围[0,1](默认图片中点ccp(0.5,0.5))
setMidpoint(CCPoint);
CCPointgetMidpoint();
//用于做进度条所占的图片比例
setBarChangeRate(CCPoint);
CCPointgetBarChangeRate();
/**
* 父类继承
* setAnchorPoint,setColor,setOpacity
*/
//设置锚点
setAnchorPoint(CCPointanchorPoint);
//设置颜色
virtual
setColor(
const
ccColor3B&color);
ccColor3B&getColor()
;
//设置透明度
setOpacity(GLubyteopacity);
virtual
GLubytegetOpacity()
;
};
3、setMidpoint
6
//只有X轴变化。(起始X轴不显示)
setBarChangeRate(ccp(0,1)):
//只有Y轴变化。(起始Y轴不显示)
//X,Y轴都变化。(起始X,y轴都不显示)
setBarChangeRate(ccp(0.5,0.5)):
//X,Y轴都变化。(起始X,y轴都已显示一半)
三组图片对比图:
18
ccp(1,0):
"从右到左显示"
ccp(0.5,monospace!important; font-size:1em!important; min-height:inherit!important; color:blue!important">"从中间到两边显示"
ccp(0,monospace!important; font-size:1em!important; min-height:inherit!important; color:blue!important">"从左到右显示"
//当条形进度条样式为:setBarChangeRate(ccp(0,1))
"从上到下显示。"
显示。
"从下到上显示。"
【代码实战】
25
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(
);
CCProgressTimer*pro2=CCProgressTimer::create(bg2);
pro2->setPosition(ccp(350,100));
->addChild(pro2);
//扇形,圆心ccp(0.3,0.7)
pro2->setType(kCCProgressTimerTypeRadial);
pro2->setMidpoint(ccp(0.3,0.7));
//pro2->setReverseProgress(true);//逆时针
3、创建进度动作CCProgressTo、CCProgressFromTo
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
4、运行结果
pro2->setReverseProgress(
//逆时针
结果如下: