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

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

画像を表示してみよう

 900iシリーズの大容量メモリを活かすアプリ作りといえば、やはり、大量のリソースを使用してリッチでド派手な物を作るのが醍醐味。今度は画像の表示方法を紹介しよう。

 ゲームのメイン処理をコンストラクタで行うのはよくないので、mainメソッドを作成し、そこですべての処理を行うことにする。

 メインクラスのstartメソッドでクラスCのmainメソッドを呼ぶ。Image型の配列を用意する。

  static final Image[] img = new Image[3];

 次に、上で用意したImageに画像を格納して使用できる状態にする。

  static final void main() {
    try {
      for (int i=0;i<3;i++) {
        MediaImage mi = MediaManager.getImage("resource:///"+ i +".gif");
        mi.use();
        img[i] = mi.getImage();
      }
    } catch (IOException e) {
      System.out.println("画像の取得に失敗!");
    }
    
    Display.setCurrent(_canvas);
  }

 リソースフォルダ(res)に連番で名前を付けたgifファイル(0.gif〜8.gif)を入れておく。

  MediaImage mi = MediaManager.getImage("resource:///"+ i +".gif");

 MediaManagerクラスのgetImageメソッドの引数にロケーション(リソースの場所)を指定すると、MediaImageが返って来る。resフォルダを指定する場合には、文字列"resource:///(ファイル名)"を指定する。

 スラッシュは3つ付ける。上記例のように、ファイル名を数字で付け、forループで繰り返して取得するといい。

 MediaImage.use()でそのメディアイメージの使用開始を宣言し、実際に使用できる形式に変換されロードされる。MediaImage.getImage()でImageオブジェクトを取得する。

 後は、paintメソッド内で第1引数をImageオブジェクトとしてdrawImageを実行すれば画像が表示される。

  for (int i=0;i<3;i++) {
    g.drawImage(img[i], 20+(i%3*50), 20+(i/3*40));
  }

 画像の取得に失敗すると、IOExceptionが発生し、catch節の中の処理が実行される。試しに画像をリソースフォルダに入れずにビルド、実行すると、エミュレータのコンソール画面に「画像の取得に失敗!」と表示されることを確認しよう。

Copyright © ITmedia, Inc. All Rights Reserved.

アクセストップ10

2026年04月06日 更新
  1. スマホ大型化の裏で高まる「小型音楽プレーヤー」待望論 現役ウォークマンか、“ポストiPod”のiPhone SEか (2026年04月05日)
  2. WAON POINTやAEON Payのキャンペーンまとめ【4月4日最新版】 ポイント10倍多数、1万ポイント還元も (2026年04月04日)
  3. Suica、JRE POINTのキャンペーンまとめ【4月5日最新版】 チャージで最大2万ポイント還元のチャンス (2026年04月05日)
  4. 楽天ペイと楽天ポイントのキャンペーンまとめ【4月3日最新版】 1万〜3万ポイント還元のチャンスあり (2026年04月03日)
  5. ソフトバンクが「今回もやる」とGalaxy S26を月額1円で販売――販売方法を早急に見直さないと撤退を迫られるメーカーも (2026年03月08日)
  6. 皆さん、パソコンやスマホを何で持ち運んでいますか? 私はリュックサックです (2026年04月04日)
  7. 新幹線でも「音漏れ」気にせず映画に没頭 NTTの技術実装で 公共交通機関で初 (2026年04月04日)
  8. LeicaコラボのXiaomiスマホ「Leitzphone」、中国モデルはデザインと名称が異なる (2026年04月05日)
  9. 「小型iPhone SEを復活させて」──手放せない理由SNSで話題 どこが“ちょうどいい”と評価されるのか (2025年11月29日)
  10. 選択肢が増えた「Starlink衛星とスマホの直接通信」 ドコモとauのサービスに違いはある? (2026年04月02日)
最新トピックスPR

過去記事カレンダー

2026年