我正在创建一个简单的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;
}
答案 0 :(得分:1)
我听说过将鼠标固定在屏幕中央的一些事情,但我不确定如何让它工作。
这是一种非常常见的方法。在检查了鼠标移动了多少并使用该信息进行相机移动后,只需将光标移回屏幕中心即可。
考虑这样的事情:
Vec2 mouseDelta = getMousePosition();
camera.CalculateMovement(mouseDelta);
setMousePosition(0, 0);
答案 1 :(得分:0)
您需要在窗口中“捕获”鼠标,通常是鼠标向下(不要忘记释放它)。
onMouseDown()
{
BeginCapture();
}
...
ReleaseCapture();