我嘗試更新相機時出現問題。OpenGL相機 - 使用SetCursorPos(x,y)時移動相機時不會反彈回來?
我想通過鼠標更改相機的俯仰和偏航(其視角) 但我希望鼠標保持定位到窗口的中心位置。
//where MouseP.x .y is the mouse position
//(which is centered to the current window)
//get old position of the mouse
OldP.x = MouseP.x;
OldP.y = MouseP.y;
//work out the distance traveled
Delta.x = MouseP.x - OldP.x;
Delta.y = MouseP.y - OldP.y;
//update the camera(using distance traveled)
Rot.Yaw -=Delta.x/5;
Rot.Pitch -= Delta.y/5;
//move mouse to the center of the screen
SetCursorPos(CENTER_SCREEN_X,CENTER_SCREEN_Y);
問題是當鼠標設置爲返回到原點時,攝像機回到某個點。
我想通過從原點行進的距離更新相機,但不是返回原點的距離。
如果我把它拿出來,它可以很好地工作,但是當時的鼠標可以離開窗戶。
Ah sorrry我沒有提到它不在WM_MOUSEMOVE事件中,它被稱爲每一幀,如你所說。我在不同的位置嘗試過它,但似乎問題出在功能之內。 –
您是否認爲有可能將它分散到線程中,並且只有在它返回到原點時纔會發出互斥或信號才能更新信號? –