2011-12-19 2 views
1

Я пытаюсь переместить камеру через gluLookAt в моем приложении OpenGL, аналогично тому, как камера движется в игре FPS. Тем не менее, это работает, я бы хотел сосредоточить мышью после ее перемещения, чтобы запретить мыши, когда-либо достигли края экрана. После некоторых исследований я обнаружил, что glutWarpPointer - это жизнеспособный вариант, однако я понимаю, что профессиональные разработчики игр используют только основные команды OpenGL, а не что-то вроде glutWarpPointer или glutSolidCube или glutSolidSphere. Правильно ли я предполагаю это?Перемещение мыши без glutWarpPointer

В моей функции WndProc я задал свой gluLookAt под сообщением WM_MOUSEMOVE в моем блоке переключения. Я также понимаю, что SendInput достигнет того, что я хочу, но из моего понимания SendInput запускает другое WM_MOUSEMOVE, когда курсор переместится в середину экрана, существенно изменив мое первоначальное движение мыши и не перемещая взгляд камеры вообще.

Любые идеи?

Редактировать: Я не думаю, что существует функция, которая не вызывает сообщение WM_MOUSEMOVE. Я думаю, что правильный маршрут - создать флаг, определяющий, был ли WM_MOUSEMOVE вызван SetCursorPos, и если бы это было так, не меняйте внешний вид камеры.

+0

Подождите, почему у вас есть WndProc, если вы думаете об использовании GLUT? – 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

Используйте SetCursorPos, чтобы переместить курсор мыши, если вы находитесь в Windows.

+0

Это фактически вызывает сообщение WM_MOUSEMOVE. Хотя это хорошее предложение, я буду отмечать его как принятое, потому что оно помогает. – user680725

Смежные вопросы