cocos2dxで、いわゆる「放置系」のゲームを作るにはどのように実装をすればいいのか?
放置系とは
今回はやってみたいことは、「時間の管理」です。 放置系ゲームは、時間の経過でゲームが進んでいきます。これをcocos2dxでやってみたいのです。
大まかに下記の項目の実装が必要になると考えます。
- 同じCCScene、もしくはCCLayer上の時間の管理
- 別のCCScene、もしくはCCLayer上の時間の管理
- バックグラウンドに移動した時、またバックグラウンドから復帰した時の時間の管理
- アプリを停止した時、アプリを立ち上げた時の時間の管理
この4つの実装ができるようにします。 まずは、第一回目として、「同じCCScene、もしくはCCLayer上の時間の管理」をブログで書いていきたいと思います。
同じCCScene、もしくはCCLayer上の時間の管理
これはとても簡単です。
時間の経過
時間の経過はルート内で計算するのが一番楽でしょう。 このような感じです。 [c]
float time;
void MyLayer :: update(float delta){
time = time + delta;
}
[/c]
ある時間が経過したらアクションを起こす
ある程度時間が経過したら、何かアクションを起こします。 これは先ほどのルートを利用します。 [c]
float time;
void MyLayer :: update(float delta){
time = time + delta;
if(time > 100){
//ここにアクションの記述(メソッド)する
time = 0;
}
}
[/c]
これで、ある時間が経過すればアクションを起こせるようになります。
最後に
第一回目はこのような感じです。 ここまではとても簡単です。次の記事は「別のCCScene、もしくはCCLayer上の時間の管理」を書こうと思います。