¿Cómo puedo saber si un botón se mantiene presionado en OpenGL / Glut? (linux)

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

  •  03-07-2019
  •  | 
  •  

Pregunta

Este es un problema similar: Enlace
Que se resolvió llamando a GetAsyncKeyState (). Si bien todo bien y elegante, necesito una alternativa de Linux. Necesito saber si un botón se está presionando , no solo se presiona (debido al retraso del búfer del teclado).

¿Existe algo como esto en las bibliotecas OpenGL / Glut, o tendré que buscar en otro lado?

¿Fue útil?

Solución

Nunca he usado Glut, pero sé que muchas personas dirán que SDL es mejor. He usado SDL y me gusta mucho. Hace todo lo que hace Glut y mucho más. En SDL, puede usar SDL_PollEvent () para obtener el estado de la clave sin el retraso del búfer del teclado.

Editar: no sé casi nada sobre Glut, pero parece que puedes usar glutKeyboardFunc para detectar claves normales, y glutSpecialFunc para las claves que no generan caracteres ASCII (como shift). No estoy seguro de si hay una mejor manera, ya que esto no parece muy agradable.

Otros consejos

Puede detectar cuándo ocurre un evento de pulsación de tecla, registrar ese estado y luego escuchar un evento de liberación de tecla.

Como se dijo, tendrá que hacer su propia máquina de estados, lo cual es fácil. Pero también necesitas usar este método de devolución de llamada, creo.

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top