我有一个在小程序中运行的游戏。在那里,有一个导弹,应该指向上,下,左或右。一种方法是创建4个图像(每个方向一个),但这太复杂了。
有人知道旋转图像的方法,一旦加载到程序中吗?
答案 0 :(得分:0)
您可以使用java awt中的applet跟随此示例来旋转图像。
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.geom.AffineTransform;
import java.net.URL;
public class RotateImage extends Applet {
private Image image;
AffineTransform identity = new AffineTransform();
private URL getURL(String filename) {
URL url = null;
try {
url = this.getClass().getResource(filename);
}
catch(Exception e){}
return url;
}
public void init() {
image = getImage(getCodeBase(), "image.jpg");
}
public void paint(Graphics g) {
Graphics2D g2d = (Graphics2D)g;
AffineTransform trans = new AffineTransform();
trans.setTransform(identity);
trans.rotate( Math.toRadians(45) );
g2d.drawImage(image, trans, this);
}
}
代码中最复杂的部分是AffineTransform对象。根据Sun的AffineTransform API,“AffineTransform类表示2D仿射变换,它执行从2D坐标到其他2D坐标的线性映射,保留线条的”直线度“和”平行度“。如果你对这个类进行一些实验(或者只是继续阅读API),你会发现它不仅可以用于旋转,还可以用于缩放,翻转和剪切图像。