【cocos2dx】イベント時間の表示で利用できるプログレスバーを実装する

ゲーム内で、何か時間の経過でイベントが起るような場合、それをPlayerに明示するモノがあればわかりやすいですね。 今回は、cocos2dxで「プログレスバー」を使って、時間の経過を表現する方法を紹介します。

幸いにも、cocos2dxにはCCProgressTimerというクラスが用意されているので簡単に実装できます。

プログレスバー実装

まずは、プログレスバーで利用する画像を用意します。 プログレスバーに関しては、「時計のような円状」「横棒」の2タイプあります。

[今回は赤い画像をプログレスバーにします]

2013-12-30-dasas.png

実装

このような感じで実装をします。 今回は、円型のプログレスバーです。

[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]

2013-12-30-dafsda.png