2013-11-21 65 views
0

我正在創建一個簡單的FPS遊戲,其中的相機移動是用鼠標控制的。當它在窗口內時用鼠標移動相機非常簡單。但即使當我離開窗戶時,我怎麼能做到這一點?FPS在OpenGL中的鼠標移動(甚至在窗外)

我聽說過有關將鼠標固定在屏幕中央的一些事情,但我不確定如何使其發揮作用。

目前,我有以下幾點:

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

你需要「捕獲」鼠標在窗口,通常在鼠標按下(不要忘了釋放它)。

onMouseDown() 
{ 
    BeginCapture(); 
} 

... 


ReleaseCapture(); 
0

我聽說過一些關於東西在屏幕的中央固定鼠標,但我不知道如何得到這個工作。

這是一種非常常見的方式。在您檢查了您的鼠標移動了多少之後,將相關信息用於相機移動後,只需將光標移回屏幕中心即可。

考慮這樣的事情:

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