第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

最新トピックスPR

過去記事カレンダー

2024年