Come faccio a sapere se un pulsante viene tenuto premuto in OpenGL / Glut? (Linux)

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

  •  03-07-2019
  •  | 
  •  

Domanda

Questo è un problema simile: Link
Che è stato risolto chiamando GetAsyncKeyState (). Mentre tutto bene e dandy, ho bisogno di un'alternativa Linux. Devo sapere se un pulsante viene tenuto premuto , non solo quando viene premuto (a causa del ritardo del buffer della tastiera).

Esiste qualcosa di simile nelle librerie OpenGL / Glut o dovrò cercare altrove?

È stato utile?

Soluzione

Non ho mai usato Glut, ma so che molte persone diranno che SDL è migliore. Ho usato SDL e mi piace molto. Fa tutto ciò che fa Glut e molto altro. In SDL, puoi utilizzare SDL_PollEvent () per ottenere lo stato della chiave senza il ritardo del buffer della tastiera.

Modifica: non so quasi nulla di Glut, ma sembra che tu possa usare glutKeyboardFunc per rilevare le chiavi normali e glutSpecialFunc per chiavi che non generano caratteri ASCII (come shift). Non sono sicuro che esista un modo migliore, poiché non sembra molto carino.

Altri suggerimenti

È possibile rilevare quando si verifica un evento di pressione dei tasti, registrare quello stato e quindi ascoltare un evento di rilascio chiave.

Come detto, dovrai creare la tua macchina a stati, il che è facile. Ma devi anche usare questo metodo di callback, credo.

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top