CCNodeのscheduleUpdateで起動させたupdateメソッドで受け取る時間を足して経過時間とした。ミリ秒、秒、分を別々に表示したくて計算で出したがもっといい書き方があると思う(特にミリ秒)。
ミリ秒について
- self.playTime – floor(self.playTime)で小数点以下の部分を取得
- (self.playTime – floor(self.playTime))*100で整数部(2桁)が目的のミリ秒
- floor((self.playTime – floor(self.playTime))*100)で整数部(2桁)だけを切り出し
ラベルの更新については、CCLabelTTFクラスのsetStringメソッドを使用。cocos2dのFPS表示っぽい箇所(CCDirectorクラスのshowStatsメソッド)を参照した。
// ゲームループ
- (void)update:(ccTime)delta
{
// ...
// プレイ時間の表示
self.playTime += delta; // プレイ時間の更新
int msec = floor((self.playTime - floor(self.playTime))*100);
int sec = (int)floor(self.playTime) % 60;
int min = (int)floor(self.playTime) / 60;
CCLabelTTF* labelPlayTime = (CCLabelTTF*)[self.baseLayer getChildByTag:kTagPlayTime];
NSString* strTime = [[NSString alloc] initWithFormat:@"%02d:%02d:%02d", min, sec, msec];
[labelPlayTime setString:strTime];
[strTime release];
}
参考サイト
cocos2dでつくるiPhoneゲーム―自由で速い、ゲーム用フレームワークを使う! (I・O BOOKS)
posted with amazlet at 13.05.28
久保島 祐磨
工学社
売り上げランキング: 6,614
工学社
売り上げランキング: 6,614
cocos2d for iPhoneレッスンノート
posted with amazlet at 13.05.28
加藤寛人 佐藤伸吾
ラトルズ
売り上げランキング: 152,450
ラトルズ
売り上げランキング: 152,450
関連エントリー

