第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年06月01日 更新
  1. Switch 2の「箱の中にHDMIケーブルが入っていなかった」との問い合わせ、任天堂に寄せられる (2026年05月29日)
  2. 「Rakuten Linkで着信拒否できない件」を楽天モバイルはどう考えているのか 置き去りにされた基本機能の行方 (2026年05月29日)
  3. スマホでどこでもTV番組を視聴できる「バッファロー nasne HDDレコーダー NS-N100」がセールで3万3120円に (2026年05月29日)
  4. ソフトバンクが「今回もやる」とGalaxy S26を月額1円で販売――販売方法を早急に見直さないと撤退を迫られるメーカーも (2026年03月08日)
  5. 楽天モバイル販売ランキング:「MNPで一括1円」のエントリー4機種が3〜6位に並ぶ【2026年4月】 (2026年05月31日)
  6. LINEで「最終学歴」や「子供の有無」が筒抜け? 広告設定で物議も「トークや個人情報は参照していない」 (2026年05月30日)
  7. NTTドコモが5G SAを無料キャンペーンから「無料提供」に改訂――Opensignalで評価を上げることはできるのか (2026年05月31日)
  8. ダイソーで770円の「超速USB充電器」が外出先で意外と便利 USB PD+QuickCharge 3.0ポート搭載で古めの急速充電デバイスもOK (2026年05月30日)
  9. Xiaomiが異例の早さでハイエンドスマホを投入する理由 今秋に「ワクワクする」機種投入も? (2026年05月30日)
  10. 70万円の衝撃、Huaweiが放つ「ダイヤ入り」スマートウォッチ Apple猛追の裏にあるものは? (2026年05月31日)
最新トピックスPR

過去記事カレンダー