第2回 カードゲームをつくってみよう90Xi専用ゲームiアプリ開発講座(1/3 ページ)

» 2004年10月25日 15時25分 公開
[澤橋辰典・武上将樹,ITmedia]

 開発講座の第2回では、カードゲームを作成する課程をレクチャーしていきたい。“ゲームアプリ作成ならでは”の手法も交えて説明するので、Javaを少し触ったことのある人でも、新鮮味を感じられるだろう。

ゲームの全体像

 本講座で開発するのは、ネットワーク対戦機能を備えたトレーディングカードゲーム(TCG)。900iシリーズならではの大容量・高速通信・カメラ撮影機能を生かしたアプリを作成する。

 今回は基本的な描画とキーイベント処理をアプリで実現し、土台となるゲームアプリを作ってみる。具体的には、「タイトル画面を表示」-「カード画像を表示」-「キーイベントを取得」-「カーソルを動かしてカードを選択する」部分までを作る。

タイトル画面を表示してみよう!

 まずはゲームを作っていくための第一歩として、タイトル画面を表示させてみよう。

 画面に何かを表示させるときには、ゲームアプリであれば、Canvasクラスのpaintメソッドを用いる。以下のたった十数行のプログラムでiアプリが完成する。

 エミュレータを起動し、Cardという名前でプロジェクトを作成。エディタで以下のプログラムを入力し、Card.javaファイルとして保存する。

//----Card.java---------------------------------------------
import com.nttdocomo.ui.*;
public class Card extends IApplication {
  public void start() {
    new C();
  }
}
class C extends Canvas {
  public C() {
    Display.setCurrent(this);
  }
  public void paint(Graphics g) {
    g.drawString("カードゲーム", 50, 120);
  }
}
//----------------------------------------------------------

 これをCardプロジェクトのsrcフォルダに入れ(デフォルトではC:\iDKDoJa3.5\apps\Card\srcの下)、ビルドして起動ボタンを押してみよう。画面に「カードゲーム」と表示されたはずだ。

 詳しく説明すると、メインのクラスであるCardはプロジェクト名と同じでなくてはならない。クラスCardは、IApplicationというクラスを継承しているが、iアプリを作るためにはこのクラスを継承しなければならない。

 iアプリが起動すると、初めに以下のメソッドが呼ばれる。

  public void start() {
    new C();
  }

 ここで、キャンバスを継承したクラスCを作る。

 クラスCが作られると、コンストラクタが実行される。

  public C() {
    Display.setCurrent(this);
  }

 クラスDisplayのsetCurrentメソッドによって、このキャンバスをカレントフレームにする。setCurrentのイメージは、PCでウィンドウにフォーカスを合わせ、最前面に表示させる動作のようなものと考えていい。

 次に、キャンバスがカレントフレームに設定されると、paintメソッドが1回だけ呼ばれる。

  public void paint(Graphics g) {
    g.drawString("カードゲーム", 50, 120);
  }

 このメソッドの中に書いてある処理が画面上に表示される。例えば、drawStringは、第1引数が表示する文字列(String)で、第2引数と第3引数はそれぞれ表示する位置のX、Y座標である。

 ここで、第1回の時にダウンロードしたリファレンスのGraphicsクラスのページを見てみよう。drawString以外にもさまざまなメソッドが掲載されている。

 例えば、setColor(int c)を文字描画の前に行えば、文字に色が付いて表示される。代表的な16色は、Graphicsクラスに定数として定義されているから、以下のようにして描画色を青色にできる。

  g.setColor(g.getColorOfName(g.BLUE));

 ほかにも、矩形(長方形)描画drawRectなど、リファレンスを見ていろいろ試してみよう。

       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

アクセストップ10

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

過去記事カレンダー