2013-04-14 3 views
0

У меня проблема, когда изображение вращается в зависимости от разницы между положением игроков и положением мыши, которое работает, но изображение на самом деле не указывает на мышь. Я хочу, чтобы верхний центр изображения указывал на мышь, и кажется, что угол всегда выключен. Я отправлю код ниже.Java Image Point To Mouse

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); 
+0

1) Для лучшей помощи в ближайшее время опубликуйте [SSCCE] (http://sscce.org/). 2) Что вы подразумеваете под «выключением»? Каковы ожидаемые и ожидаемые результаты? –

ответ

0

документация Javadoc для Math.atan(double) говорит, что возвращаемое значение может варьироваться от -pi/2 до пи/2.
Итак, вам нужно компенсировать это возвращаемое значение.

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