Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java OpenGL中的FPS鼠标移动(即使在窗口外)_Java_Opengl_Jogl - Fatal编程技术网

Java OpenGL中的FPS鼠标移动(即使在窗口外)

Java OpenGL中的FPS鼠标移动(即使在窗口外),java,opengl,jogl,Java,Opengl,Jogl,我正在创建一个简单的FPS游戏,其中相机的移动由鼠标控制。当相机在窗口内时,用鼠标移动相机相当简单。但是,即使我不在窗外,我怎么能让它工作呢 我听说过一些关于将鼠标固定在屏幕中央的事情,但我不知道如何让它工作 我目前有以下情况: public void mouseMoved(MouseEvent event) { x = X; y = Y; X = event.getX(); Y = event.getY(); } public void update() {

我正在创建一个简单的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;

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

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

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

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

考虑一下这样的情况:

Vec2 mouseDelta = getMousePosition();
camera.CalculateMovement(mouseDelta);
setMousePosition(0, 0);
我听说过一些关于将鼠标固定在屏幕中央的事情,但我不知道如何让它工作

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

考虑一下这样的情况:

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