10/05/10 01:29:54 CH9wxDuw
皆さんありがとうございます。
URLリンク(javagame.skr.jp)
に書いてある、repaint()を使わないで描画する方法(アクティブレンダリング)というのをやってみたら大分カクカクが収まりました。
>>173
すいません、勉強不足で仰られていることの意味がわからないんでコード晒します。
>>168からいろいろ変えてみて、今現在、
Image img = Toolkit.getDefaultToolkit().getImage(getClass().getResource(filename));
MediaTracker tracker = new MediaTracker(this);
tracker.addImage(img, 0);
try {
tracker.waitForID(0);
} catch (InterruptedException e) {
e.printStackTrace();
}
BufferedImage bimg= new BufferedImage(img.getWidth(null),img.getHeight(null),BufferedImage.TYPE_4BYTE_ABGR);
Graphics g = bimg.createGraphics();
g.drawImage(img,0,0,null);
でpng画像をbimgに読み込んだ後、drawImageでオフスクリーンバッファに描画してます。
画面への転送方法は先程も書きましたがrepaint()を使わない方法に変えてみました。
あと、画像を最初にBufferedImageで読み込んでいても、チップは分割しておいたほうがいいですか?
>>174 すいません、軽く調べましたがなんか難しそうなので諦めます。
>>175 そうなんですか。うーん、どうしてもフルカラーでいきたいんですよね…。無理そうならgifに戻すことにします。
177:名前は開発中のものです。
10/05/10 22:09:49 rdBA97qw
画像のロードは遅延読み込みやりたいわけじゃないならImageIOつかうとよいよ。転送待ちをする必要ないし。
あとABGRとかARGBとか順番によって大きく速度が変わるからピクセルフォーマットは意識したほうがよい。
転送先はVRAM、もしくはコンパチブルピクセルフォーマットのほうがいいよ。
そして転送元もあわせたほうがよい場合が多い。
あとは特定色の透過をしたい場合TransparencyがBITMASKになってると大概早いはず。
178:名前は開発中のものです。
10/05/11 10:35:00 RB0dCl6F
初級って書いてあるから開いてみたけど
話が難しすぎてさっぱりわからないwww
ダメだ俺orz