intente lo siguiente:
- Uso
glutIgnoreKeyRepeat
para conseguir solamente física keydown/keyup eventos
- Utilice
glutKeyboardFunc
para registrar una devolución de llamada para escuchar los eventos de selección de teclas.
- Utilice
glutKeyboardUpFunc
para registrar una devolución de llamada para escuchar eventos de teclados.
- Cree una matriz
bool keystates[256]
para almacenar el estado de las teclas del teclado.
- Al recibir un evento a través de su devolución de llamada por clave, configure
keystates[key] = true
.
- Al recibir un evento a través de la devolución de llamada por teclado, configure
keystates[key] = false
.
- En su ciclo de ejecución, pruebe si
(keystates['a'] || keystates['A']) && (keystates['j'] || keystates['J'])
.
Mire en esa dirección. Aunque no lo he probado, debería funcionar. Es posible que también necesite glutSpecialFunc
y glutSpecialUpFunc
para recibir mensajes de claves 'especiales'.
Además, tenga en cuenta que GLUT es realmente cosas viejas y que hay alternativas mucho más agradables.
se puede saber más acerca de estas alternativas más agradables? – colorfulgrayscale