戻る 03. 拡大縮小機能 次へ

505からはゲームを作るうえで非常に効果的な
拡大縮小機能が標準APIとなりました。

これで今までより表現が多彩なゲームが出てくることは
まちがいありませんね。

しかし問題としては単純に倍表示では使えません。
504での最低解像度は128x128です
505での現時点での最低解像度は240x270です。
504のアプリを倍表示すると256x256となりますので
横が足りてません...
ということで以前のアプリを移植となるとレイアウトの作り直しとなってしまいますね...

しかもJ-PHONEのJ-T08のQVGA機種と違って自動的に拡大機能なんてのもついてなく
今までのアプリは画面に小さく表示されてしまいます。

ということで503用,504用のアプリも
505でしか動かない503機能相当アプリ
505でしか動かない504機能相当アプリ
として作り直す必要がありそうです。
各メーカーさんの対応が大変そうですね...


さて本題に戻りまして拡大縮小機能の説明です。 この機能は504の時からオプションAPIとして一部機種には実装されていました。 しかし全機種で使えない機能はたいがい使われないので ほとんどのアプリでは使用されないままに終わっていました... 今回は標準APIとなったので各メーカーも積極的に使うことが予想されます。 追記(2003/06/19) ・D505ではこの命令は劇遅です...Dはやる気あるのか?  Dだけ切り捨てたいくらいです...スプライトもDだけ無いし... 他の505でも多少遅いのがありますがDだけ極端に遅いです。 使い方は504の時とほとんど同じです。 public void drawScaledImage( Image image, //描画するイメージオブジェクトを指定します。 int dx, //描画先の矩形の左上の X 座標を指定します。 int dy, //描画先の矩形の左上の Y 座標を指定します。 int width, //描画先の矩形の幅を指定します。 int height, //描画先の矩形の高さを指定します。 int sx, //描画元の矩形の左上の X 座標を指定します。 int sy, //描画元の矩形の左上の Y 座標を指定します。 int swidth, //描画元の矩形の幅を指定します。 int sheight) //描画元の矩形の高さを指定します。
使用例(2倍表示): Graphics g = getGraphics(); g.drawScaledImage(Img,x,y,sx*2,sy*2,x2,y2,sx,sy); 描画先にサイズを2倍指定してやると2倍表示となります。
使用例(504対応機種のみ 2倍表示): Graphics2 g2 = (Graphics2)getGraphics(); g2.drawScaledImage(Img,x,y,sx*2,sy*2,x2,y2,sx,sy);