Как узнать, удерживается ли кнопка в OpenGL/Glut?(Линукс)

StackOverflow https://stackoverflow.com/questions/808825

  •  03-07-2019
  •  | 
  •  

Вопрос

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

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

Это было полезно?

Решение

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

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

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top