首页 > 代码库 > Cocos2d-x进度条倒计时实现

Cocos2d-x进度条倒计时实现

素材:


实现:

//进度条背景
	CCSprite *progressbgSprite;
	progressbgSprite = CCSprite::create("time_slot-hd.png")	;
	progressbgSprite->setAnchorPoint(ccp(0,0));	//修改定点对应点
	progressbgSprite->setPosition(ccp(0, size.height-22));
	progressbgSprite->setScaleX(0.4f);
	progressbgSprite->setScaleY(0.7f);
	this->addChild(progressbgSprite, 1);
	progressbgSprite->setVisible(true);

	//进度条正面红条
	CCSprite *progressSprite = CCSprite::create("time_bars-hd.png");
	progress = CCProgressTimer::create(progressSprite);//创建进度条
	progress->setAnchorPoint(ccp(0,0));
	progress->setType(kCCProgressTimerTypeBar);	//中间为从左向右的进度条,类型为水平
	progress->setScaleX(0.4f);
	progress->setScaleY(0.7f);
	progress->setPosition(ccp(0,size.height-22));

	//进度动画运动方向
	progress->setMidpoint(ccp(0,0));
	//进度条宽高变化
	progress->setBarChangeRate(ccp(1,0)); //设置进度条为从左向右随进度增长而显现
	progress->setPercentage(100.0f);//值
	this->addChild(progress,1);
	progress->setVisible(true);

让进度条1秒减一点,直到为0

 void Game::update(float dt)
 {	 
	 int cu=progress->getPercentage(); //获取进度条的值
	 if (cu > 0)
	 {
		 cu=cu-1.0f;
		 progress->setPercentage(cu); //设置进度条的值
		 CCString *str = CCString::createWithFormat("%d",cu);
		 numsTTF->setString(str->getCString());//设置进度条上字的值
	 }
 }

结果: