CCProgressTimer这个类可以用来制作进度条,当然还有其他的一些作用,大家学习了自己可以想想都可以干什么了。这个类初始化的时候需要传入一张精灵图片,用这张图片来执行动作CCProgressTo,下面就来看看如何使用它们吧。

使用CCProgressTimer制作进度条 使用CCProgressTimer制作进度条 使用CCProgressTimer制作进度条 使用CCProgressTimer制作进度条

bool HelloWorld::init()
{
    //////////////////////////////
    // 1. super init first
    if ( !CCLayer::init() )
    {
        return false;
    }

    CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize();

	//CCProgressTo是CCAction的子类,第一个参数代表的是动画执行时间
	//参数2代表的是动画执行结束图片显示的百分比
	CCProgressTo * progressTo = CCProgressTo::create(2.0f,100);

	//CCProgressFromTo第二个参数和第三个参数代表的是从百分之多少到百分之多少
	//CCProgressFromTo * progressTo = CCProgressFromTo::create(2.0f,30,100);

	//CCProgressTimer传入一张图片,用这张图片来执行上边的动作
	CCProgressTimer * progress = CCProgressTimer::create(CCSprite::create("HelloWorld.png"));
	progress->setPosition(ccp(visibleSize.width/2,visibleSize.height/2));
	//设置样式,就是图片显示的时候是以扇形的方式显示,还是以条形的方式显示
	//kCCProgressTimerTypeRadial 扇形
    //kCCProgressTimerTypeBar 条形
	progress->setType(kCCProgressTimerTypeBar);
	//当上边的类型设置为kCCProgressTimerTypeBar的时候可以设置以下的方法,代表图片显示的方向
	//(1,0)这个向量当然是代表水平的方向了,大家多改变以下参数就明白了
	progress->setBarChangeRate(ccp(1,0));
	//设置显示的时候从哪开始,默认的都是从图片的中心点开始的,ccp中的第二个参数已经不管用了,因为
	//setBarChangeRate已经设置了方向ccp(1,0)
	//当设置了类型为扇形的时候,以下的方法会改变扇形旋转的中心点
	progress->setMidpoint(ccp(0,0));

	this->addChild(progress);

	progress->runAction(CCRepeatForever::create(progressTo));
	//progress->runAction(progressTo);

	CCSprite * sprite = CCSprite::create("HelloWorld.png");
	sprite->setPosition(ccp(visibleSize.width/2,visibleSize.height/2));
	//设置透明度,达到技能冷却的效果
	sprite->setOpacity(100);
	this->addChild(sprite);

    return true;
}