Java 可以同时使用变换和图像绘制坐标吗?
我正在尝试将一个移动的动画精灵转变为一个自身的反面。我知道的唯一方法是:Java 可以同时使用变换和图像绘制坐标吗?,java,Java,我正在尝试将一个移动的动画精灵转变为一个自身的反面。我知道的唯一方法是: AffineTransform transform = new AffineTransform(); transform.scale(-1, 1); transform.translate(-sprite.getWidth(), 0); g.drawImage(imageFromSprite, transform, null); 因为似乎没有通过变换输入坐标的方法,这意味着我无法继续运行在屏幕上移动动画精灵的代码 有没有
AffineTransform transform = new AffineTransform();
transform.scale(-1, 1);
transform.translate(-sprite.getWidth(), 0);
g.drawImage(imageFromSprite, transform, null);
因为似乎没有通过变换输入坐标的方法,这意味着我无法继续运行在屏幕上移动动画精灵的代码
有没有办法变换图像并在指定坐标处绘制它?
非常感谢您的帮助。为自己编写一个执行转换并接受坐标作为参数的方法 例:
我假设transform.translate()方法实际上正在进行图像反转。变换图像不会影响您定位图像的能力,如图所示:
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);
如果要为缓冲区图像制作动画,请注意以下链接:
http://www.permadi.com/tutorial/javaImgObserverAndAnimGif/通过线程可能实现什么类是imageFromSprite
?这是什么drawImage()
方法?我在上面找不到它。但我是否仍然需要将坐标传递到draw方法中,最终意味着我将无法转换?你能举个例子吗?我认为这行不通,因为transform.translate(-sprite.getWidth(),0);实际上不会对图像进行任何更改。只有通过g.drawImage渲染的图像似乎实际应用了变换。但是,扩展Graphics2D并编写新的g.transformAndDrawImage重载可能会起作用,但是我不知道如何查看图形代码,以便编写自定义绘图方法。
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);