ひっきぃのメモ帳

趣味で作るプラモデル製作の過程と作品、日々の資格取得へ向けての活動、Apple中心のIT関連ネタを書いています。

[]第25回 画像の一部を使う

第25回では、画像の一部を使う方法です。

ちょっと豪華な感じのスコアを表示したい場合。画像で数値を用意します。

数字の画像をたくさん用意しても良いですが、読み込む画像が多いと管理も大変なので1つの画像にしておきます。これを適当な部分を切り取って組み合わせて表示するわけです。

とりあえず普通に表示するには、初期化のときに準備して、

   MediaImage numimg = MediaManager.getImage("resource:///count.gif");
   numimg.use();
   num = numimg.getImage();

さらにpaint() ルーチンで

  g.drawImage(num,50,120);

ac5417e2.gifこれで普通に全体が表示されます。

部分を表示するなら、数値の場所を表す配列を用意しておき、

  int[] sep = {0,13,27,39,53,65,77,90,101,114,128,136};

その部分から表示します。

  g.drawImage(num,100, 200, sep[n],0,13,30);

nに表示したい数値を設定すると、その部分から切り出して表示されます。

赤字で示したパラメータは
     横方向開始位置, 縦方向開始位置, 切り取り幅, 切り取り高さ
です。 

画像を作る時に計算して配置おけば、開始位置は配列にしないで計算で出しても良いですけどね。

試しにキーを押した時にその数字の画像が出るようにするならば、processEventの中で

   if (param==Display.KEY_1) { // 押されたのが 1キー
       n=1;  
   }

以下キー毎に処理を書くと、押されたキーに対応した画像の数値が表示されます。

最後に repaint() するのを忘れないようにしましょう。

repaint()を実行したときに、paint()が呼び出されて描画されます。