Как мне узнать, удерживается ли кнопка в OpenGL / Glut? (Linux) - PullRequest
2 голосов
/ 01 мая 2009

Это похожая проблема: Ссылка
Что было решено вызовом GetAsyncKeyState (). Пока все отлично и денди, мне нужна альтернатива Linux. Мне нужно знать, удерживается ли кнопка нажатой , а не просто нажата (из-за задержки буфера клавиатуры).

Существует ли что-либо подобное в библиотеках OpenGL / Glut, или мне придется искать в другом месте?

Ответы [ 3 ]

3 голосов
/ 01 мая 2009

Я никогда не использовал Glut, но я знаю, что многие скажут, что SDL лучше. Я использовал SDL, и мне это очень нравится. Это делает все, что делает Glut и многое другое. В SDL вы можете использовать SDL_PollEvent() для получения состояния клавиши без задержки буфера клавиатуры.

Редактировать: я почти ничего не знаю о Glut, но похоже, что вы можете использовать glutKeyboardFunc для обнаружения нормальных ключей и glutSpecialFunc для ключей, которые не генерируют ASCII символы (такие как смещение). Я не уверен, что есть лучший способ, так как это не очень приятно.

0 голосов
/ 31 марта 2011

Как уже говорилось, вам придется создать свой собственный конечный автомат, что легко. Но вам также нужно использовать этот метод обратного вызова, я думаю.

http://pyopengl.sourceforge.net/documentation/manual/glutKeyboardUpFunc.3GLUT.xml

0 голосов
/ 01 мая 2009

Вы можете обнаружить, когда происходит событие нажатия клавиши, записать это состояние, а затем прослушать событие отпускания клавиши.

...