provare quanto segue:
- Utilizzare
glutIgnoreKeyRepeat
per ottenere solo fisica keydown/keyup eventi
- Utilizzare
glutKeyboardFunc
per registrare una richiamata in ascolto di eventi keydown.
- Utilizzare
glutKeyboardUpFunc
per registrare una richiamata in ascolto di eventi di accesso.
- Creare una matrice
bool keystates[256]
per memorizzare lo stato dei tasti della tastiera.
- Quando si riceve un evento tramite il callback del keydown, impostare
keystates[key] = true
.
- Quando si riceve un evento tramite la richiamata di keyup, impostare
keystates[key] = false
.
- 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.
si può dire di più su queste alternative più bello? – colorfulgrayscale