p165からの「ベルトコンベアのゲーム」(Atlas2.pde)について、点数を計数する流れを追ってみます。
計数のための変数として、deactiveCount, foundCount, missCount が用意されており、それぞれ不良品数、正解数、ミス数を計数します。
最初は、3つの変数とも 0 。
初期化の関数setup()で、resetUnit()がコールされたとき、unit.reset()で Unit がひとつ生成されます。このUnitのunit.typeが1のとき、不良品ということでunit.deactiveがtrueになり、deactiveCountがひとつカウントアップするようになっています。
Unitが画面の右端まで行ってしまうか寿命が尽きてしまうと(つまりunit.step()がfalseになると)、再びresetUnit()がコールされ、新しいUnitが不良品であればdeactiveCountがひとつカウントアップするという操作が繰り返されます。
foundCountとmissCountは、mousePressed()で操作されます。isFinish(「ゲームクリアorゲームオーバー」のときにtrueになる)がfalseであり、かつunit.isHitMouse()がtrueのとき、カウントアップします。もちろん、Unitが不良品であればfoundCount、良品であればmissCountがカウントアップします。
そして、この3変数は、draw()の中のdrawText()で、ゲーム進行中の成績を表示するために使われます。
draw()は、時間切れか、missCountが既定数を超えるかした時に、isFinishのフラグを立てて、終了処理に入ります。即ち、drawResult()をコールします。drawResult()は、不良品を1つでも見逃した場合と一定以上のミスを犯した場合に「GAME OVER」、それ以外の時は「CLEAR」という判定を行い、全てのゲーム結果を表示します。
drawResult()による表示が一定時間おこなわれた後にマウスが押された時、resetStage()がコールされて、3変数も0にリセットされます。
《インデックス》
◆◆◆参考文献「遊んで作るスマホゲームプログラミング for Android」
◆◆◆公文生ならゲームで遊ぶな!ゲームを作れ!
◆◆◆公文式小林教室◆山形県東根市◆◆◆
計数のための変数として、deactiveCount, foundCount, missCount が用意されており、それぞれ不良品数、正解数、ミス数を計数します。
最初は、3つの変数とも 0 。
初期化の関数setup()で、resetUnit()がコールされたとき、unit.reset()で Unit がひとつ生成されます。このUnitのunit.typeが1のとき、不良品ということでunit.deactiveがtrueになり、deactiveCountがひとつカウントアップするようになっています。
Unitが画面の右端まで行ってしまうか寿命が尽きてしまうと(つまりunit.step()がfalseになると)、再びresetUnit()がコールされ、新しいUnitが不良品であればdeactiveCountがひとつカウントアップするという操作が繰り返されます。
foundCountとmissCountは、mousePressed()で操作されます。isFinish(「ゲームクリアorゲームオーバー」のときにtrueになる)がfalseであり、かつunit.isHitMouse()がtrueのとき、カウントアップします。もちろん、Unitが不良品であればfoundCount、良品であればmissCountがカウントアップします。
そして、この3変数は、draw()の中のdrawText()で、ゲーム進行中の成績を表示するために使われます。
draw()は、時間切れか、missCountが既定数を超えるかした時に、isFinishのフラグを立てて、終了処理に入ります。即ち、drawResult()をコールします。drawResult()は、不良品を1つでも見逃した場合と一定以上のミスを犯した場合に「GAME OVER」、それ以外の時は「CLEAR」という判定を行い、全てのゲーム結果を表示します。
drawResult()による表示が一定時間おこなわれた後にマウスが押された時、resetStage()がコールされて、3変数も0にリセットされます。
《インデックス》
◆◆◆参考文献「遊んで作るスマホゲームプログラミング for Android」
◆◆◆公文生ならゲームで遊ぶな!ゲームを作れ!
◆◆◆公文式小林教室◆山形県東根市◆◆◆
コメント