カメラを更新しようとすると問題が発生します。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イベントには言及していませんでした。私は別の場所でそれを試してみましたが、問題は機能内にあるようです。 –
それをスレッドに流し込み、ミューテックスまたはセマフォを送信元に戻ったときにのみ更新するように通知することは可能ですか? –