|
RGBの携帯Java入門 | |||||
|
共通事項
※「アプリ作成の流れ」で作成した「MainCanvas.java」のメソッドの説明です。 |
|||||||||||||
|
■画面遷移について 各画面を「シーン(scene)」という単位に分けて処理を行います。 (本によっては、sectionやscreenという名前を使用する場合がありますが、ここでは一般的である「scene」という名前を使用することとします) 各シーンごとにメソッドを作成し、controlSceneメソッド内でシーンの振り分け処理を行います。 「画面」とはユーザー(ゲームをプレイしてくれる人)の視点からみた場合の分割単位であり、「シーン」はプログラマーからみた場合の分割単位です。 はじめのうちは、画面≒シーンと捉えても構いません。 ■サンプルソース 下図のような画面遷移をサンプルとして作成してみます。 ![]() 「アプリ作成の流れ」で作成した「MainCanvas.java」(ソース雛形は1.0)の を削除し、以下の内容に置き換えます。
置き換えたらビルドし、起動します。 決定キーを押すたびに画面が切り替わることを確認してください。
■サンプルソース説明 firstSceneメソッドはシーンが切り替わったときに1度だけtrueを返します。 ※ソース雛形1.1以降の場合 ソース雛形1.1以降の場合は、初期化処理終了後に「firstSceneEnd()」を実行してください。
誤動作を防ぐため、changeSceneメソッドの次行にはreturn文を記述してください。 今回はサンプルということで何もしていませんが、本来は画像の読み込み処理等のゲームを行うための準備を行います。 シーン初期化処理で、changeScene(SC_TITLE)を使用し、タイトル画面に遷移させています。 背景色を白く塗りつぶし、赤文字で「タイトル画面です」と描画しています。 キー処理では、keyPressing(KEY_SELECT)) を使用し、決定キーが押されたらプレイ画面に遷移させています。 背景色を白く塗りつぶし、緑文字で「プレイ画面です」と描画しています。 キー処理では、keyPressing(KEY_SELECT)) を使用し、決定キーが押されたら結果画面に遷移させています。 背景色を白く塗りつぶし、青文字で「結果画面です」と描画しています。 キー処理では、keyPressing(KEY_SELECT)) を使用し、決定キーが押されたらタイトル画面に遷移させています。 ■シーンを増やす サンプルでは基本的な4シーンを作成しましたが、ゲームの仕様によっては4シーンでは足りない場合があります。 ここでは、タイトル画面とプレイ画面の間にメニュー画面を追加する例を説明します。 (1)シーンIDの追加 現在は既に以下のシーンIDが宣言されています。 public static final int SC_INIT = 0; public static final int SC_TITLE = 1; public static final int SC_PLAY = 2; public static final int SC_RESULT = 3; 3まで使われているので4を使用することにし、以下の宣言を追加します。 public static final int SC_MENU = 4; (2)controlSceneメソッドの修正 新しいシーンが追加されたので、シーンの振り分け処理を行っているcontrolSceneメソッドを修正します。 switch文の中に、以下の処理を追加します。 case SC_MENU : sceneMenu(); break; ※ソース雛形1.1以降の場合 ソース雛形1.1以降の場合は、「keySceneメソッド」「paintSceneメソッド」も修正します。 (3)sceneMenuメソッドの追加 メニューシーンの処理が記述されたsceneMenuメソッドを作成します。 他のシーンメソッドを参考に作成してください。 決定ボタンが押されたら、プレイ画面に遷移する処理を記述します。 ※ソース雛形1.1以降の場合 ソース雛形1.1以降の場合は、「keyMenuメソッド」「paintMenuメソッド」も追加します。 (4)他シーンの遷移処理を修正 タイトルシーンにおいて、決定ボタンが押されたらメニュー画面に遷移するように処理を修正します。 これでシーンの追加は完了です。ビルドして確認してください。 シーンIDに付けられた数字はあくまで識別番号であり、画面遷移順を決定するものではないということに注意してください。 |
||||||||||||
|
RGBの携帯Java入門 | |||||