OpenGL / Glutでボタンが押されているかどうかを確認するにはどうすればよいですか? (Linux)
質問
これは同様の問題です。リンク
GetAsyncKeyState()を呼び出すことで解決しました。すべてうまくいきましたが、Linuxの代替手段が必要です。ボタンが押されているだけでなく、キーボードバッファの遅延のためにボタンが押されているかどうかを知る必要があります。
このような何かがOpenGL / Glutライブラリに存在しますか、または他の場所を調べる必要がありますか?
解決
Glutを使用したことはありませんが、多くの人が SDL の方が優れていると言うことを知っています。私はSDLを使用しましたが、とても気に入っています。これは、Glutが行うすべての機能を備えています。 SDLでは、 SDL_PollEvent()
を使用して、キーボードバッファーの遅延なしでキー状態を取得できます。
編集:Glutについてほとんど何も知りませんが、 glutKeyboardFunc
は通常のキーを検出し、 glutSpecialFunc
は、ASCII文字を生成しないキー(シフトなど)用です。これがあまり良いとは思えないので、もっと良い方法があるかどうかはわかりません。
他のヒント
キー押下イベントの発生を検出し、その状態を記録してから、キーリリースイベントをリッスンできます。
前述のとおり、独自のステートマシンを作成する必要がありますが、これは簡単です。ただし、このコールバックメソッドも使用する必要があります。
http://pyopengl.sourceforge.net/documentation/manual/glutKeyboardUpFunc。 3GLUT.xml
所属していません StackOverflow