2011-12-19 28 views
1

OpenGLアプリケーションでgluLookAt経由でカメラを移動しようとしているのは、FPSゲームでのカメラの動きと同様です。しかし、私はそれを動かした後にマウスを中心に置いて、画面の端にマウスが到達することを許さないようにしたい。いくつかの研究を行った後、私はglutWarpPointerが実行可能なオプションであることを発見しましたが、プロのゲーム開発者はglutWarpPointerやglutSolidCube、glutSolidSphereのようなものではなく、基本的なOpenGLコマンドを利用するという意味があります。私はこれを仮定して正しいですか?glutWarpPointerなしでマウスを移動

私のWndProc関数では、スイッチブロック内のWM_MOUSEMOVEメッセージの下にある私のgluLookAtの外観を設定しました。私はまた、SendInputが私が望むことを達成するだろうとわかっていますが、私の理解から、カーソルが画面の中央に移動すると、SendInputは別のWM_MOUSEMOVEを引き起こし、本質的にマウスの元の動きを逆転させ、

アイデア?

編集:私はWM_MOUSEMOVEメッセージを呼び出さない関数が存在するとは思いません。私は、適切なルートは、WM_MOUSEMOVEがSetCursorPosによって呼び出されたかどうかを判断するフラグを作成することだと思います、それがあった場合、カメラの外観を変更しないでください。

+0

GLUTの使用を考えているのであれば、なぜWndProcを持っていますか? – genpfault

+0

GLUTを使いたくない、単純なOpenGLだ。 – user680725

+0

ここに:http://stackoverflow.com/questions/784322/how-can-i-change-the-position-of-the-mouse-cursor-in-opengl-glut –

答えて

0

Windowsの場合は、SetCursorPosを使用してマウスカーソルを再配置します。

+0

これは実際にWM_MOUSEMOVEメッセージを呼び出します。これは良い提案ですが、助けてくれるので受け入れられたとマークします。 – user680725

関連する問題