Como posso saber se um botão está sendo pressionado em OpenGL / Glut? (Linux)

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

  •  03-07-2019
  •  | 
  •  

Pergunta

Este é um problema semelhante:
Qual foi resolvido chamando GetAsyncKeyState (). Enquanto tudo muito bem e dândi, eu preciso de uma alternativa Linux. Eu preciso saber se um botão está a ser realizada para baixo, não apenas sendo pressionado (por causa do atraso do buffer de teclado).
faz nada como este existem nas bibliotecas OpenGL / Glut, ou vou ter que procurar outro lugar?

Foi útil?

Solução

Eu nunca usei Glut, mas eu sei que muitas pessoas vão dizer SDL é melhor. Eu tenho usado SDL e eu gosto muito. Ele faz tudo Glut faz e muito mais. Em SDL, você pode usar SDL_PollEvent() para obter estado-chave sem o atraso do buffer de teclado.

Edit: Eu sei quase nada sobre Glut, mas parece que você pode usar glutKeyboardFunc para detectar as chaves normais, e glutSpecialFunc para chaves que não geram caracteres ASCII (como shift). Eu não tenho certeza se há uma maneira melhor, como isso não parece muito bom.

Outras dicas

Você pode detectar quando um evento keypress ocorre, ficha esse estado, e depois ouvir para um evento de lançamento chave.

Como disse, você terá que fazer a sua própria máquina de estado, que é fácil. Mas você também precisa usar este método de retorno de chamada que eu penso.

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top