マウスでの座標取得(GetCursorPos)について
Posted: 2014年5月14日(水) 20:42
使用環境はWindows7、Visual Studio 2013、C++、Directx9です。
前フレームと現フレームのマウスの座標の差を取って
その差分を使って、カメラを移動させたりしているのですが
(以下コード)
このコードだと当たり前なのですが、モニターの端などでマウスを動かしてもがマウスカーソルが動けなくなると差が0になってしまいます。
そうすると、端にいく度にマウスを戻してまた動かす、という事になってしまいます。
私の理想では、端にマウスが行こうとも実際のマウスが動いた分を反映させてやりたいのですがどうしたらよろしいでしょうか…
もしよろしければお教えいただけないでしょうか。
よろしくお願いします。
前フレームと現フレームのマウスの座標の差を取って
その差分を使って、カメラを移動させたりしているのですが
(以下コード)
POINT Mouse::MouseRelPos()
{
// マウス座標(相対)
POINT pos;
//画面全体でのマウスカーソルの位置を取得
GetCursorPos(&p);
// 前フレームとの座標差を算出
pos.x = OldPos.x - pos.x;
pos.y = OldPos.y - pos.y;
// 座標更新
GetCursorPos(&OldPos);
return pos;
};
そうすると、端にいく度にマウスを戻してまた動かす、という事になってしまいます。
私の理想では、端にマウスが行こうとも実際のマウスが動いた分を反映させてやりたいのですがどうしたらよろしいでしょうか…
もしよろしければお教えいただけないでしょうか。
よろしくお願いします。