OpenGL中的FPS鼠标移动(甚至在窗口外)

时间:2013-11-21 16:07:23

标签: java opengl jogl

我正在创建一个简单的FPS游戏,用鼠标控制相机移动。使用鼠标在窗口内移动相机非常简单。但即使我不在窗外,我怎么能做到这一点呢?

我听说过将鼠标固定在屏幕中央的一些事情,但我不确定如何让它工作。

我目前有以下内容:

public void mouseMoved(MouseEvent event) {
    x = X;
    y = Y;
    X = event.getX();
    Y = event.getY();
}

public void update() {
    dX = X - x;
    dY = Y - y;
    x = X;
    y = Y;

}

2 个答案:

答案 0 :(得分:1)

  

我听说过将鼠标固定在屏幕中央的一些事情,但我不确定如何让它工作。

这是一种非常常见的方法。在检查了鼠标移动了多少并使用该信息进行相机移动后,只需将光标移回屏幕中心即可。

考虑这样的事情:

Vec2 mouseDelta = getMousePosition();
camera.CalculateMovement(mouseDelta);
setMousePosition(0, 0);

答案 1 :(得分:0)

您需要在窗口中“捕获”鼠标,通常是鼠标向下(不要忘记释放它)。

onMouseDown()
{
    BeginCapture();
}

... 


ReleaseCapture();