0

動くアニメーションスプライトをそれ自体の逆に変換しようとしています。私が知っている唯一の方法は次のとおりです。

AffineTransform transform = new AffineTransform();
transform.scale(-1, 1);
transform.translate(-sprite.getWidth(), 0);
g.drawImage(imageFromSprite, transform, null);

変換で座標を入力する方法がないように見えるため、アニメーション化されたスプライトを画面上で移動させるコードを実行し続けることができないことを意味します。

画像を変換して指定した座標で描画する方法はありますか?

どんな助けでも大歓迎です。

4

2 に答える 2

0

変換を実行し、座標をパラメーターとして受け入れるメソッドを自分で作成します。

元:

public void doTransformAndDraw(int x, int y)
{
    AffineTransform transform = new AffineTransform();
    //transform.scale(-1, 1);
    transform.translate(-sprite.getWidth(), 0);
    g.drawImage(sprite, x, y, null);
}

transform.translate()メソッドが実際に画像の反転を行っていると想定しています。

于 2012-06-27T01:26:59.980 に答える
0

次に示すように、画像を変換しても、画像を配置する機能には影響しません。

BufferedImage reversedImage = new BufferedImage(imageFromSprite.getWidth(),
        imageFromSprite.getHeight(), imageFromSprite.getType());

AffineTransform transform = new AffineTransform();
transform.scale(-1, 1);
transform.translate(-imageFromSprite.getWidth(), 0);

Graphics2D reversedImageGraphic = reversedImage.createGraphics();
reversedImageGraphic.drawImage(imageFromSprite, transform, null);

// top left is drawn at (0,60)
g.drawImage(imageFromSprite, 0, 60, null);

アニメーションを作成する場合はBufferedImage、次のリンクを参考にしてください。

http://web.mit.edu/1.124/LectureNotes/images.html http://www.permadi.com/tutorial/javaImgObserverAndAnimGif/

于 2012-06-27T02:40:35.157 に答える