p165からの「ベルトコンベアのゲーム」(Atlas2.pde)について、時間を計測する流れを追ってみます。

というか、時間の管理は難しいんだろうとばかり思っていたのですが、すごく単純なようでビックリしました。

時間計測のための変数は startTime だけのようです。

最初は、 0 。

そして、draw()が、時間切れか、missCountが既定数を超えるかした時に、isFinishのフラグを立てて、終了処理に入る時に、(millis() - startTime)が LIMIT_TIME に達したかどうかの比較に使われるだけ。まあ、当然、残り時間表示のための drawText() でも使われますが。

ただ、それだけ。

後は、再プレイのとき、resetStage() で、millis() の値を代入されるだけ。その繰り返しです。

millis() の説明は p176にありますが、「プログラム起動からそこまでの経過時間をミリ秒(1/1000秒)単位で返す関数」なので、最初のステージのときはほぼ「0」になっています。だから、startTime の初期値は「0」で良いんですね。



《インデックス》

◆◆◆参考文献「遊んで作るスマホゲームプログラミング for Android
◆◆◆公文生ならゲームで遊ぶな!ゲームを作れ!
◆◆◆公文式小林教室◆山形県東根市◆◆◆