前回までは25日の英検が目標でしたのでソースに手を加えずに間に合わせました。今度は、2月10日前後(?)の認定テスト。クイズの問題文を長くしたいので、ソース(p541のQuiz6.pde)を改造します。

まず第一弾として、画面上部の3プレーヤーを削除し、空いたスペースを問題文表示エリアとします。上部のプレーヤーがいなくなるということは、問題文の逆さ表示も要らなくなります。

その前に、Quiz6.pdeの解析。なにしろ、Processingは初めてですので。

まず、最初が変数群の定義のようです。classとして、QuizDataとPlayerDataを定義し、配列にしています。C言語の構造体と同等のもののようです。

その後の関数群。setup()、draw()、mousePressed()の3つのグループに分けられるかと思います。

setup()は文字通り初期化の関数。画面表示のサイズや背景などの画像を設定しています。その下のレベルの関数として、makePlayers()とloadQuiz()があります。

makePlayers()はPlayerDataの初期設定。配列数6はここで決まります。

draw()は画面表示を行う関数で、何度も繰り返し実行されるようです。下のレベルには、updateFrameStep()、drawTitle()、drawQuiz()があります。

updateFrameStep()は、draw()が実行される周期が一定でないため、プログラム内の時計(フレーム)をその都度補正する働きをしているようです。drawTitle()は、起動してから画面にタッチするまでの間、タイトルを表示します。drawQuiz()はタッチが行われてからの実際のゲームの動きになります。

主なゲームの動きは全てdrawQuiz()に記述されていますから記述量は最も多く、その下にはdrawQuizPlayerInfo()、drawQuestion()、drawAnswer()、setNextQuiz()があります。名前を見ればだいたい機能は想像できます。

mousePressed()は、タブレットならばタッチのイベントが発生した時に実行されるものです。

分かりやすいプログラムだと思います。

《インデックス》

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