|
900i専用のトレーディングカードを開発するにあたり、前回は画面への描画と、キーイベントの処理までのプログラムを作成した(10月25日の記事参照)。しかし、これだけではまだゲームとして遊ぶことはできない。そこで今回は、遊ぶのに必須となるシーン別の処理と、ランダムな値の取得について解説していく。
ゲームをゼロから作る際には、頭の中でイメージしたものを、実際に目に見える形に置き換えることが重要になる。イメージをいきなりプログラムに書こうとしても、抽象的すぎて作業効率が上がらないからだ。そこでまず、「画面遷移」をしっかりと組んでおこう。
画面遷移とは大ざっぱにいうと、「ゲームを起動するとまずはロゴが表示され、次にメニュー画面が出て、そこで何らかの選択が行われるとゲームのプレイ画面が表示される」といった具合に、どのように画面が移り変わっていくかという流れを示す構成図のようなものだ。
ゲームやツールにはさまざまな画面が存在する。RPGを例にとれば、タイトル画面・メニュー画面・フィールド画面・バトル画面などに分かれ、それぞれの画面で行う処理も異なる。前もって面遷移がしっかりと組まれていれば、それぞれのシーン毎に必要になる処理が見えてくるので、スムーズにコーディングを進められる。
さて、今回のゲームで定義したシーンは以下のようになっている。
|
SCENE_INITでは、起動してから画像を読み込み、ゲームが使用できる状態になるまで「初期化中」のメッセージを表示する。初期化が終わると、次にタイトル画面を表示する。続いてバトル画面に移行し、ここでカードが表示されバトルが始まる。勝負がつくとリザルト画面を表示してタイトルに戻る。
考えた画面遷移を図にすると以下のようになる。
実際には以下のような形でそれぞれのシーンを処理していく。
|
main処理メソッドや、paintメソッドに上記の処理を記述することによってゲームが進んでいく。上記の例では、タイトル画面で決定キーを押したらフィールド画面に遷移する様子を示している。
ここで気をつけなければならないのが、定数の設定だ。例えば、Displayクラスの定数フィールドでは、決定キーは、KEY_SELECTという名前の整数型で、値は0x16(16進数。10進数では20)であることが分かる。つまり、case 0x16: と記述しても決定キーのeventを拾えてしまうのだが、タイピング数やコードサイズが減るからといって、フィールドを数字で書いてしまうと、後でコードを読む時に何の値か分からなくなってしまう。フィールドの記述には、必ず定数として宣言されている値を使おう。
ゲームには乱数を使用する場面が多い。例えば、パズルゲームで次に現れるピースや、モグラ叩きゲームにおけるモグラが地上に現れる穴、こういったものの決定には乱数が使われている。今回のゲームでも、配られるカードのシャッフルに乱数を使用する。
Copyright © ITmedia, Inc. All Rights Reserved.