ゲーム内で、何か時間の経過でイベントが起るような場合、それをPlayerに明示するモノがあればわかりやすいですね。 今回は、cocos2dxで「プログレスバー」を使って、時間の経過を表現する方法を紹介します。
幸いにも、cocos2dxにはCCProgressTimerというクラスが用意されているので簡単に実装できます。
プログレスバー実装
まずは、プログレスバーで利用する画像を用意します。 プログレスバーに関しては、「時計のような円状」「横棒」の2タイプあります。
[今回は赤い画像をプログレスバーにします]
実装
このような感じで実装をします。 今回は、円型のプログレスバーです。
[c] CCSize winsize = CCDirector::sharedDirector()->getWinSize(); CCSprite *bar = CCSprite::create("time-bar.png");
//タイマー処理
Timer = CCProgressTimer::create(bar);
Timer->setType(kCCProgressTimerTypeRadial);
Timer->setPosition(ccp(winsize.width/2,winsize.height/3*2));
Timer->setPercentage(0.0f);
Timer->setTag(1);
this->addChild(Timer,3);
[/c]
棒状に変更する場合は、setTypeの所を変更して下さい。 [c]
Timer->setType(kCCProgressTimerTypeBar);
[/c]
使い方
色々と使い方があると思うのですが、setPercentage()が100になった時に何かイベントを発生させるなどができます。
[c]
float time = Timer->getPercentage();
time +=1.0f;
Timer->setPercentage(time);
if(time > 100.0f){
}
[/c]