0

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

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

4

1 回答 1

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

在您的情况下,您当然会先进行旋转然后平移,而不是平移和缩放。

于 2013-05-30T14:20:31.583 回答