2009-05-15 39 views

Respuesta

15

intente lo siguiente:

  1. Uso glutIgnoreKeyRepeat para conseguir solamente física keydown/keyup eventos
  2. Utilice glutKeyboardFunc para registrar una devolución de llamada para escuchar los eventos de selección de teclas.
  3. Utilice glutKeyboardUpFunc para registrar una devolución de llamada para escuchar eventos de teclados.
  4. Cree una matriz bool keystates[256] para almacenar el estado de las teclas del teclado.
  5. Al recibir un evento a través de su devolución de llamada por clave, configure keystates[key] = true.
  6. Al recibir un evento a través de la devolución de llamada por teclado, configure keystates[key] = false.
  7. 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.

+4

se puede saber más acerca de estas alternativas más agradables? – colorfulgrayscale

0

por "alternativa más agradable" si usted quiere decir simple y función de entrada superabundancia-independiente a continuación tienes con la función GetAsyncKeyState ...

MSDN - GetAsyncKeyState function

+0

Esto es solo para Windows. Y Windows es realmente viejo y hay alternativas mucho mejores. – ybungalobill

Cuestiones relacionadas