我正在编写一个简单的射击游戏,我希望将我的角色旋转到鼠标的方向并“开火”。除了旋转实际图像之外,我已经为此完成了所有代码。这是我目前的一些代码:(这都是在涂料成分方法下)
xCent = x + 50;
yCent = y + 50; // x and y center of image ( x and y change depending on Keyboard Input)
a.setToRotation(theta, xCent,yCent); // a = new AffineTransform() Here is my calculation of theta (under the MouseMotionListener): theta = Math.atan2(e.getY() - yCent,e.getX() - xCent);
a.setToTranslation(x,y);
a.setToRotation(theta, xCent,yCent);
g2.drawImage(charac,a, null);
我现在如何“设置”图形的x和y坐标以便绘制它?
答案 0 :(得分:0)
看看这个:
http://www.javalobby.org/java/forums/t19387.html
public void paint(Graphics g) {`
AffineTransform transformer = new AffineTransform();
transformer.translate(5,5);
transformer.scale(2,2);
Graphics2D g2d = (Graphics2D)g;
g2d.setTransform(transformer);
// draw to g2d.
}
在您的案例中,您可以进行轮换,然后进行翻译而不是翻译和缩放。