画像の使い方

間に、コーディング規約やら雑記やらを挟んで飛びましたが
またjigletの作り方の解説やります。


今回は、前回作ったHelloWorld応用編に、
さらに手を加えて画像を使ったjigletを作ってみます。
内容は、HelloWorldの文字列が動く代わりに
カーソルの画像が動くjigletです。


画像を使う前には、色々と準備が必要になります。

準備

まず使う画像の用意。

手書きカーソルです。


そしてそれを使用するjigletのフォルダの
resってとこにいれます。


VGA端末で使用する時は、res_vgaフォルダにも入れる。


これで準備完了!

ソース

import jp.jig.jiglet.*;

public class HelloWorld extends Jiglet {
	//初期座標。定数は全部大文字で書く。
	static final int HOME_X = 10;
	static final int HOME_Y = 20;
	
	//移動量。変数は単語のつなぎ目の頭文字を大文字に。
	int moveX = 0;
	int moveY = 0;
	
	//画像の入れ物
	Image cursorImage;
	
	
	public void main() {
		clearKey();
		
		//画像を取得(拡張子の小文字/大文字に注意)
		cursorImage = getImage("cursor.gif");
		
		for (;;) {
			//キー入力を取得
			int key = getKey();
			
			//取得したキーに応じた処理
			if (key == KEY_UP) {
				moveY--;
			} else if (key == KEY_DOWN) {
				moveY++;
			} else if (key == KEY_LEFT) {
				moveX--;
			} else if (key == KEY_RIGHT) {
				moveX++;
			} else if (key == KEY_SELECT) {	//決定キーを押したら移動量リセット
				moveX = 0;
				moveY = 0;
			} else if (key == KEY_IAPP) {	//クリアキーを押したらアプリ終了
				return;
			}
			repaint();
			sleep(10);
		}
	}
	public void paint(boolean allDrawFlag) {
		//初期化
		setColor(0xFFFFFF);		//背景色
		fillRect(0, 0, DW, DH);	//DW:画面幅 DH:画面高さ
		
		//初期値+移動量の座標に、カーソル描画
		drawImage(cursorImage, HOME_X + moveX, HOME_Y + moveY);
	}
}

前回のソースと、ほぼ変わってないと思います。
画像の入れ物を用意して、画像を取得して
drawStringがdrawImageになったくらい。
初めてやった人は、拡張子の大文字/小文字があってなくて
エラーが起きる場合が多いです。

実行画面


こんな感じでカーソルを動かすことができます。
分かりづらくてすいません。

まとめ

画像を使うと見た目が良くなるんですが
jigletの容量がでかくなるのが問題ですねー。(結構すぐ凄いサイズになる
でも一番の問題は、やっぱり
上手な絵を描くことが出来ないことですね!
絵が描ける人が羨ましい(*´p`)