2009-05-15 7 views

risposta

15

provare quanto segue:

  1. Utilizzare glutIgnoreKeyRepeat per ottenere solo fisica keydown/keyup eventi
  2. Utilizzare glutKeyboardFunc per registrare una richiamata in ascolto di eventi keydown.
  3. Utilizzare glutKeyboardUpFunc per registrare una richiamata in ascolto di eventi di accesso.
  4. Creare una matrice bool keystates[256] per memorizzare lo stato dei tasti della tastiera.
  5. Quando si riceve un evento tramite il callback del keydown, impostare keystates[key] = true.
  6. Quando si riceve un evento tramite la richiamata di keyup, impostare keystates[key] = false.
  7. Nel ciclo di esecuzione, verificare se (keystates['a'] || keystates['A']) && (keystates['j'] || keystates['J']).

Cerca in quella direzione. Sebbene non l'abbia provato, dovrebbe funzionare. Potrebbe anche essere necessario glutSpecialFunc e glutSpecialUpFunc per ricevere messaggi per i tasti 'speciali'.

Inoltre, essere consapevoli del fatto che GLUT è davvero roba vecchia e che ci sono alternative molto più belle.

+4

si può dire di più su queste alternative più bello? – colorfulgrayscale

0

da "alternativa più bello" se si intende più semplice e funzione di ingresso sovrabbondanza-indipendente poi ottenuto con la funzione GetAsyncKeyState ...

MSDN - GetAsyncKeyState function

+0

Questo è solo per Windows. E Windows è davvero vecchio e ci sono alternative molto più belle. – ybungalobill

Problemi correlati