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

» 2004年11月01日 22時55分 公開
[澤橋辰典・武上将樹,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では、起動してから画像を読み込み、ゲームが使用できる状態になるまで「初期化中」のメッセージを表示する。初期化が終わると、次にタイトル画面を表示する。続いてバトル画面に移行し、ここでカードが表示されバトルが始まる。勝負がつくとリザルト画面を表示してタイトルに戻る。

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

    シーン別処理を行おう

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

     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 © ITmedia, Inc. All Rights Reserved.

    アクセストップ10

    2026年09月19日 更新
    1. IIJに聞く“eSIMサポート”の裏側 「つながらない」「消した」なぜ起こる? 現場が打つ次の一手 (2026年09月18日)
    2. 出そろった「iPhone 18 Pro」の価格を4キャリアで比較 ソフトバンクが衝撃の安さ、楽天モバイルが異例の施策 (2026年09月13日)
    3. 「iPhone 18 Pro」は何が進化した? 「iPhone 17/17 Pro」とスペックを比較 全て20万円超えの価格が悩ましい (2026年09月10日)
    4. iPhone Duoを「開いたままでも片手で持てる」ケース登場 ESRが新製品発表、日本で急成長の理由とは (2026年09月17日)
    5. 「Suicaのペンギン」卒業騒動にまつわる背景と誤解 JR東日本に聞いた (2025年11月14日)
    6. 15日配信「iOS 27」の新機能まとめ Siri AIの恩恵を受けられる機種は? 画像編集やSafariにも注目 (2026年09月14日)
    7. ドコモのiPhone、iOS 27でRCSに対応 3キャリアのiPhoneとAndroidで利用可能に (2026年09月17日)
    8. JR東日本「分かりにくい」新幹線券売機を改善へ なぜ、スマホではなく「駅での最短1分購入」を実現? (2026年07月04日)
    9. Androidでおサイフケータイを使いたくない理由 初期化で消えないデータと売却時の落とし穴 (2026年09月19日)
    10. 「世界初」ソフトバンクらが成層圏HAPSのリアルタイム追尾とレーザー測距に成功 光無線通信へ大きな一歩 (2026年09月17日)
    最新トピックスPR

    過去記事カレンダー