2014-12-09 2 views
0

이것은 LWJGL 버전 2.9.1을 사용하고 있으며 razer deatheradder 마우스를 사용하여 Windows 8.1에 있습니다.LWJGL Mouse.getDX 항상 0을 반환합니다.

Mouse.getDX() 또는 Mouse.getDY()을 호출 할 때마다 마우스를 얼마나 빨리 움직여도 상관없이 항상 0이 반환됩니다.

Mouse.getX() 작품과 Mouse.getY() 작품이지만 getDXgetDY하지 않습니다.

잠시 동안 getDXgetDY을 다시 만들려고했지만이 질문을 끝내기 전에 답을 얻을 수 있는지 확인하고 싶습니다.

답변

0

나는 Mouse.getDX과 Mouse.getDY 항상 0 반환 왜 이유를 발견하지하지만 그들은 자신을 만들 필요가 없습니다 그래서 저도 같은 문제가 경우 다른 사람에 내 버전을 공유해야한다고 생각 :

/*----NOTES---- 
*This requires two variables saved 
*somewhere named mouseX and mouseY 

*I only give getDX() as they are identical, just swap 
*dX -> dY 
*currentX -> currentY 
*Mouse.getX() -> Mouse.getY() 
*mouseX -> mouseY:*/ 

public int getDX(){ 
    int dX = 0; 
    int currentX = Mouse.getX(); 

    /*This is is only used because I am 
    *running my update mouse when Mouse. 
    *isGrabbed is true, this prevents it 
    *from jumping right after you click */ 
    if(mouseX == 0){ 
     mouseX = currentX; 
    } 

    dX = Math.abs(mouseX - currentX); 

    //Handles left/right movement 
    if(mouseX > currentX){ 
     dX = -dX; 
    } 

    /*If the mouse was to go too far in 
    *either direction it resets it */ 
    if(currentX >= Main.WIDTH - 25){ 
     currentX = 0; 
    } 
    else if(currentX == 0){ 
     currentX = Main.WIDTH - 25; 
    }else{ 
     mouseX = currentX; 
    } 

    return dX; 
} 
2

아마도 프레임 당 Mouse.setGrabbed(true); (으)로 전화하고 계신 것입니까? 렌더링 루프 밖으로 이동 한 후이 문제가 발생했습니다. getDX이 작동했습니다.