Java Image Point To Mouse

时间:2013-04-14 21:28:28

标签: java slick2d

我遇到的问题是图像根据玩家位置和鼠标位置之间的差异而旋转,但图像实际上并不指向鼠标。我希望图像的顶部中心指向鼠标,看起来角度总是关闭。我将在下面发布代码。

  Input input = gc.getInput();

  if (input.isKeyDown(Input.KEY_W))
  {
     position.y -= 3;
  }

  if (input.isKeyDown(Input.KEY_A))
  {
     position.x -= 3;
  }

  if (input.isKeyDown(Input.KEY_S))
  {
     position.y += 3;
  }

  if (input.isKeyDown(Input.KEY_D))
  {
     position.x += 3;
  }

  float xDistance = input.getAbsoluteMouseX() - position.x;
  float yDistance = input.getAbsoluteMouseY() - position.y;
  double angleToTurn = Math.toDegrees(Math.atan2(yDistance, xDistance));
  entityImage.setRotation((float) angleToTurn);

1 个答案:

答案 0 :(得分:0)

Math.atan(double)的javadoc表示返回值的范围可以从-pi / 2到pi / 2.
因此,您需要补偿该返回值。

double angleToTurn = Math.toDegrees(Math.atan2(yDistance, xDistance));
if(angleToTurn < 0)
{
        angleToTurn += 360;
}