第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

2025年12月19日 更新
  1. 資さんうどんが「PayPay」の取り扱いを停止 他のキャッシュレス決済は引き続き利用可能 (2025年12月16日)
  2. なぜ? U-NEXTが自ら「U-NEXT MOBILE」を立ち上げた理由 20GB実質300円、ワンプラン、eSIMのみの狙い (2025年12月17日)
  3. 総務省が「SIMのみ契約」のMNP優遇を問題視 端末値引きは規制緩和の可能性も? (2025年12月17日)
  4. スマホ新法は「オープンなAndroidエコシステム」と矛盾しない Googleが高く評価する理由 (2025年12月18日)
  5. Apple Watchいらず、iPhone単体でフィットネスの「ワークアウト」を測定する方法は? (2025年12月17日)
  6. テスラの車載Wi-Fiをワイモバイルの“子回線”と“バッテリーレス”ルーターを活用して“安く”構築した話 (2025年12月17日)
  7. 「Pixel 10 Pro XL」のコンピューテショナルカメラはどのくらい進化した? 撮ってみて分かったこと (2025年12月18日)
  8. iOSが「スマホ新法」に対応、アプリストアや決済手段を選べるように App Storeの手数料も改定 (2025年12月18日)
  9. 500ポイントもらえる「東京アプリ」のテストに参加する方法は? 1.1万円相当のポイント付与に向けた最終検証がスタート (2025年12月15日)
  10. 「住信SBIネット銀行」の商号変更に関する一部報道 ドコモは「準備が整い次第公表」 (2025年12月18日)
最新トピックスPR

過去記事カレンダー