我正在尝试将移动的动画精灵转换为自身的反转。我知道这样做的唯一方法是:
AffineTransform transform = new AffineTransform();
transform.scale(-1, 1);
transform.translate(-sprite.getWidth(), 0);
g.drawImage(imageFromSprite, transform, null);
因为似乎没有方法可以用变换输入坐标,这意味着我无法继续运行我的代码,这会在屏幕上移动动画精灵。
有没有办法转换图像并在指定坐标处绘制图像?
非常感谢任何帮助。
答案 0 :(得分: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()方法实际上正在进行图像反转。
答案 1 :(得分: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/