使用AffineTransform同时移动和旋转图像

时间:2013-05-30 12:47:16

标签: java

我正在编写一个简单的射击游戏,我希望将我的角色旋转到鼠标的方向并“开火”。除了旋转实际图像之外,我已经为此完成了所有代码。这是我目前的一些代码:(这都是在涂料成分方法下)

   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坐标以便绘制它?

1 个答案:

答案 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.
}

在您的案例中,您可以进行轮换,然后进行翻译而不是翻译和缩放。