1

我在游戏中的玩家移动时遇到问题。该游戏是一个自上而下的射击游戏,其中玩家的位置由 W、A、S 和 D 控制。我想通过移动鼠标来控制玩家面对的方向。

我知道我需要使用 mouseMoved 方法来跟踪鼠标,但是我在计算角度和实际旋转图像时都迷失了方向。

图像基本上是一个带有黑线的圆圈,代表枪伸出来。

任何帮助是极大的赞赏!

4

1 回答 1

2

您可以使用玩家和鼠标坐标计算角度:

float angle = (float)(Math.atan2(player.y - mouse.y, player.x - mouse.x));

这将为您提供以弧度为单位的角度。

然后在绘制对象时:

AffineTransform reset = new AffineTransform();
reset.rotate(0, 0, 0);
Graphics2D g2 = (Graphics2D)g;
g2.rotate(angle, player.x, player.y);
//draw the image here
g2.setTransform(reset);
于 2013-05-29T21:59:12.830 回答