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