旋转图像以"指向"鼠标位置

Gre*_*ven 2 java slick2d

我在坦克图像上面有一张枪图像.我希望枪指向鼠标位置,以便鼠标可以用来瞄准.原始枪图像将指向上方.我正在使用Slick2D,它的图像类有一个旋转功能,需要一个角度.我该怎么做呢?

Jak*_*ene 8

您可以通过询问Input对象来找到用户鼠标的位置.这是通过向GameContainer请求输入来完成的.

Input userInput = gameContainer.getInput();
float mouseX = userInput.getMouseX();
float mouseY = userInput.getMouseY();
Run Code Online (Sandbox Code Playgroud)

鼠标和枪的位置可用于确定枪需要面对的角度.我们可以想象在枪和鼠标之间画一条线并找到这条线的角度.该角度是枪需要面对的角度,以便"指向"鼠标.

Vector2f gunLocation = gun.getLocation();
float xDistance = mouseX - gunLocation.x;
float yDistance = mouseY - gunLocation.y;
double angleToTurn = Math.toDegrees(Math.atan2(yDistance, xDistance));
gunImage.setRotation((float)angleToTurn);
Run Code Online (Sandbox Code Playgroud)