第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年04月05日 更新
  1. スマホ大型化の裏で高まる「小型音楽プレーヤー」待望論 現役ウォークマンか、“ポストiPod”のiPhone SEか (2026年04月05日)
  2. 楽天ペイと楽天ポイントのキャンペーンまとめ【4月3日最新版】 1万〜3万ポイント還元のチャンスあり (2026年04月03日)
  3. WAON POINTやAEON Payのキャンペーンまとめ【4月4日最新版】 ポイント10倍多数、1万ポイント還元も (2026年04月04日)
  4. ソフトバンクが「今回もやる」とGalaxy S26を月額1円で販売――販売方法を早急に見直さないと撤退を迫られるメーカーも (2026年03月08日)
  5. 皆さん、パソコンやスマホを何で持ち運んでいますか? 私はリュックサックです (2026年04月04日)
  6. au PAYとPontaのキャンペーンまとめ【4月2日最新版】 1万ポイント還元や30%還元のチャンスあり (2026年04月02日)
  7. ドコモの「ぷらら」フレッツ光関連サービスが「OCN」に統合へ 利用料金に変更あり (2026年04月02日)
  8. 選択肢が増えた「Starlink衛星とスマホの直接通信」 ドコモとauのサービスに違いはある? (2026年04月02日)
  9. Suica、JRE POINTのキャンペーンまとめ【4月5日最新版】 チャージで最大2万ポイント還元のチャンス (2026年04月05日)
  10. 新幹線でも「音漏れ」気にせず映画に没頭 NTTの技術実装で 公共交通機関で初 (2026年04月04日)
最新トピックスPR

過去記事カレンダー

2026年