在我的 Opengl 引擎中,我有以下代码来管理鼠标输入内容:
protected static void Mouse(){
mousex = Mouse.getX();
mousey = Mouse.getY();
mouseDx = Mouse.getDX();
mouseDy = Mouse.getDY();
mouseWheelState = Mouse.getEventDWheel() / 120;
while(Mouse.next()){
int eventButton = Mouse.getEventButton();
if(Mouse.getEventButtonState()){
for(MouseListener listener : MouseManager.listener){
listener.mousePressed(AGLMouseButton.valueOf(Mouse.getButtonName(Mouse.getEventButton())));
}
}
else if(eventButton > -1){
for(MouseListener listener : MouseManager.listener)
listener.mouseReleased(AGLMouseButton.valueOf(Mouse.getButtonName(Mouse.getEventButton())));
}
}
}
我的问题是 mouseWheelState 永远不会为零。如果我向上旋转滚轮,则 mouseWheelState 为 1,直到我向下旋转滚轮。
我该如何解决这个问题?
最佳答案
Mouse.getEventDWheel()
获取鼠标滚轮移动的增量。即使您不触摸方向盘,它也会报告微小的变化。
解决此问题的一个简单方法是使用“死区”,即不接受更改的区域。
mouseWheelState = Mouse.getEventDWheel();
if(Math.abs(mouseWheelState)<deadbandWidth)
{
mouseWheelState = 0;
}
mouseWheelState /= 120;
关于java - Lwjgl MouseDwheel 没有得到 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25611412/