以下のコードを使用して(スプライトシートからの)画像を拡大縮小しようとしています。
Point pos = new Point(100, 100); //this shows where to display the image
Rectangle a = getAnimatedPos(); //just gets the coordinates of a specified image (which works correctly)
g.drawImage(img, pos.x, pos.y, pos.x+getWidth(), pos.y+getHeight(), a.x, a.y, a.x+a.width, a.y+a.height, null);
the function getWidth() returns the width of the frame. The formula is (imageWidth/rows).
the function getHeight() returns the height of the frame. The formula is (imageHeight/cols).
(幅または高さを変更して)画像を拡大縮小すると、他のフレームが表示され始めますか?画像の幅または高さをデフォルトのサイズのままにすると、機能します。sourcecoordsとdestcoordsを定義することで、これはできないと思いました。
明確にするために、画像は640x480のサイズの内部フレームにペイント/レンダリングされています。また、フレームとは、スプライトシートのことで、シート内の各画像はフレームです。もちろんアニメーション用です。
明確にするもう1つのことは、画像がコンポーネントの上に描画されていないことです。ただの内部フレーム。
これを修正するにはどうすればよいですか?
スクリーンショット
すべてがデフォルトの場合、これは次のようになります:http ://wisemindstudios.com/good.png
私が何かを変えるとき:http ://wisemindstudios.com/bad.png
本当にありがとう!