好了,我们来看看进度条如何来实现,cocos2dx里已经有现成的这个类,叫CCProgressTimer。好了,废话少说,我们直接上代码,看如何来这个类。
//创建一个进度条精灵,这个是2.0以后api变了 CCSprite *progressbgSprite=CCSprite::create("time_slot-hd.png"); progressbgSprite->setPosition(ccp(300, 300)); this->addChild(progressbgSprite, 1); CCSprite *progressSprite=CCSprite::create("time_bars-hd.png"); progress1=CCProgressTimer::create(progressSprite); progress1->setType(kCCProgressTimerTypeBar); progress1->setPosition(ccp(300, 300)); //进度动画运动方向,可以多试几个值,看看效果 progress1->setMidpoint(ccp(0, 0)); //进度条宽高变化 progress1->setBarChangeRate(ccp(1, 0)); progress1->setPercentage(0); this->addChild(progress1, 1); numsTTF=CCLabelTTF::create("0", "Thonburi", 18); numsTTF->setPosition(ccp(300, 300)); this->addChild(numsTTF, 1); this->scheduleUpdate();
void HelloWorld::update(float t) { float cu=progress1->getPercentage(); cu=cu+0.1f; progress1->setPercentage(cu); CCString *str = CCString::createWithFormat("%.2f%%",cu); numsTTF->setString(str->getCString()); }
创建一个CCProgressTimer类,并且在上面显示一个文字变化,并调用系统的方法来刷新界面,OK,看截图
0K。。我们来改变下,设置progress1->setPercentage(100);然后刷新方法里cu=cu-0.1f;
OK,我们换个进度条类型看看,
CCSprite *progress2Sprite=CCSprite::create("Icon-72.png"); progress2=CCProgressTimer::create(progress2Sprite); //类型为圆形 progress2->setType(kCCProgressTimerTypeRadial); progress2->setPosition(ccp(300, 100)); this->addChild(progress2, 1);
我们看下效果:(下面的小图就是)