我在游戏中移动玩家时遇到了麻烦。游戏是一个自上而下的射击游戏,其中玩家的位置由W,A,S和D控制。我想通过移动鼠标控制玩家面对的方向。
我知道我需要使用mouseMoved方法来跟踪鼠标,但我在计算角度和实际旋转图像时都迷失了。
图像基本上是一个黑色圆圈,表示枪支伸出。
非常感谢任何帮助!
答案 0 :(得分: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);