2009-04-24 2 views
4

Я пишу простую игру, и я буду управлять камерой мыши (используя GlutPassiveMotionFunc).Как изменить положение курсора мыши в OpenGL/Glut?

Я собираюсь настроить шаг и рывок, основываясь на разности мышей между обратными вызовами, однако я думаю, что было бы хорошей идеей «заставить» мышь вернуться в центр экрана каждый раз, когда они пытались ее переместить. Таким образом, их курсор не будет находиться на краю экрана, и они не могут двигаться дальше в этом направлении.

Какую команду Glut/OpenGL можно использовать для изменения положения мыши?

ответ

10

Использование glutWarpPointer(x, y), где x и y (оба int ы) в пикселях (относительно начала координат окна). Например:

glutWarpPointer(windowWidth/2, windowHeight/2); 
+0

Это решение не работает для меня, поскольку glutWarpPointer (x, y) также сбрасывает позиции мыши. –

+0

Что значит «сбрасывает положение мыши»? Это то, что он должен делать (в этом случае вы читаете позицию мыши перед вызовом glutWarpPointer, чтобы повторно центрировать мышь). Может быть, я не понимаю, что вы пытаетесь сделать? – hbw

0

Извините за поздний ответ. Я имел в виду, что после того, как я использую функцию glutWrapPointer, если я распечатаю значения x и y, я не смог поймать изменение курсора, и он всегда выводит значения внутри функции glutWrapPointer, которую я предоставил. Что я сделал, чтобы исправить это, было перемещение этой функции внутри функции Animate openGl, и она работала нормально.

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