第25回
では、画像の一部を使う方法です。
ちょっと豪華な感じのスコアを表示したい場合。画像で数値
を用意します。
数字の画像をたくさん用意しても良いですが、読み込む画像が多いと管理も大変なので1つの画像にしておきます。これを適当な部分を切り取って組み合わせて表示するわけです。
とりあえず普通に表示するには、初期化のときに準備して、
MediaImage numimg = MediaManager.getImage("resource:///count.gif");
numimg.use();
num = numimg.getImage();
さらにpaint() ルーチンで
g.drawImage(num,50,120);
これで普通に全体が表示されます。
部分を表示するなら、数値の場所を表す配列を用意しておき、
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()が呼び出されて描画されます。