連載
» 2004年11月01日 22時55分 UPDATE

90Xi専用ゲームiアプリ開発講座:第3回 簡単なゲーム作成の流れを身に付ける (1/2)

900i専用のトレーディングカードゲームを開発するため、今回はシーン別処理とランダムな値の取得について学んでいく。

[澤橋辰典・武上将樹,ITmedia]

  • 第8回 90xiアプリのこれから
  • 第7回 ネットワークiアプリのためのサーバサイド活用(2)
  • 第6回 ネットワークiアプリのためのサーバサイド活用(1)
  • 第5回  スクラッチパッドへのデータ保存とダウンロードファイルの処理
  • 第4回 カメラ機能を使ってカードを作ろう
  • 第3回 簡単なゲーム作成の流れを身に付ける
  • 第2回 カードゲームをつくってみよう
  • 第1回 90xiの時代に何を作るか
  •  900i専用のトレーディングカードを開発するにあたり、前回は画面への描画と、キーイベントの処理までのプログラムを作成した(10月25日の記事参照)。しかし、これだけではまだゲームとして遊ぶことはできない。そこで今回は、遊ぶのに必須となるシーン別の処理と、ランダムな値の取得について解説していく。

    画面遷移を設計しよう

     ゲームをゼロから作る際には、頭の中でイメージしたものを、実際に目に見える形に置き換えることが重要になる。イメージをいきなりプログラムに書こうとしても、抽象的すぎて作業効率が上がらないからだ。そこでまず、「画面遷移」をしっかりと組んでおこう。

     画面遷移とは大ざっぱにいうと、「ゲームを起動するとまずはロゴが表示され、次にメニュー画面が出て、そこで何らかの選択が行われるとゲームのプレイ画面が表示される」といった具合に、どのように画面が移り変わっていくかという流れを示す構成図のようなものだ。

     ゲームやツールにはさまざまな画面が存在する。RPGを例にとれば、タイトル画面・メニュー画面・フィールド画面・バトル画面などに分かれ、それぞれの画面で行う処理も異なる。前もって面遷移がしっかりと組まれていれば、それぞれのシーン毎に必要になる処理が見えてくるので、スムーズにコーディングを進められる。

     さて、今回のゲームで定義したシーンは以下のようになっている。

    // 初期化中のシーン
    static final int SCENE_INIT  = -1;
    // タイトルのシーン
    static final int SCENE_TITLE = 0;
    // ゲーム中のシーン
    static final int SCENE_GAME  = 1;

     SCENE_INITでは、起動してから画像を読み込み、ゲームが使用できる状態になるまで「初期化中」のメッセージを表示する。初期化が終わると、次にタイトル画面を表示する。続いてバトル画面に移行し、ここでカードが表示されバトルが始まる。勝負がつくとリザルト画面を表示してタイトルに戻る。

     考えた画面遷移を図にすると以下のようになる。

    senizu.jpg

    シーン別処理を行おう

     実際には以下のような形でそれぞれのシーンを処理していく。

     switch(scene) {
      // タイトル画面の処理
      case SCENE_TITLE:
       switch(event) {
        case Display.KEY_SELECT:
         // 決定キーを押したらフィールド画面へ
         scene = SCENE_FIELD;
        break;
       }
      break;
      
      case SCENE_FIELD:
       …フィールドの処理…
      break;
     }
     

     main処理メソッドや、paintメソッドに上記の処理を記述することによってゲームが進んでいく。上記の例では、タイトル画面で決定キーを押したらフィールド画面に遷移する様子を示している。

     ここで気をつけなければならないのが、定数の設定だ。例えば、Displayクラスの定数フィールドでは、決定キーは、KEY_SELECTという名前の整数型で、値は0x16(16進数。10進数では20)であることが分かる。つまり、case 0x16: と記述しても決定キーのeventを拾えてしまうのだが、タイピング数やコードサイズが減るからといって、フィールドを数字で書いてしまうと、後でコードを読む時に何の値か分からなくなってしまう。フィールドの記述には、必ず定数として宣言されている値を使おう。

    乱数の取得を行おう

     ゲームには乱数を使用する場面が多い。例えば、パズルゲームで次に現れるピースや、モグラ叩きゲームにおけるモグラが地上に現れる穴、こういったものの決定には乱数が使われている。今回のゲームでも、配られるカードのシャッフルに乱数を使用する。

           1|2 次のページへ

    Copyright© 2016 ITmedia, Inc. All Rights Reserved.