OpenGL/GLUTの使用「a」と「j」の2つのキーが同時に押された場合、どうすれば検出できますか?OpenGL/GLUTの使用2つのキーが同時に押された場合、どうすれば検出できますか?
(このプログラムは、そう何のOSに依存するハックOSX GCC、WindowsのGCC、WindowsのVS2005でコンパイルしないようにしてください必要があります。)
OpenGL/GLUTの使用「a」と「j」の2つのキーが同時に押された場合、どうすれば検出できますか?OpenGL/GLUTの使用2つのキーが同時に押された場合、どうすれば検出できますか?
(このプログラムは、そう何のOSに依存するハックOSX GCC、WindowsのGCC、WindowsのVS2005でコンパイルしないようにしてください必要があります。)
次のことを試してみてください。取得のみ物理のKeyDown/keyUpイベントに
glutIgnoreKeyRepeat
イベントglutKeyboardFunc
を使用して、keydownイベントを待機しているコールバックを登録します。glutKeyboardUpFunc
を使用して、keyupイベントをリッスンするコールバックを登録します。bool keystates[256]
アレイを作成して、キーボードのキーの状態を保存します。keystates[key] = true
と設定します。keystates[key] = false
と設定します。(keystates['a'] || keystates['A']) && (keystates['j'] || keystates['J'])
をテストします。その方向を見てください。私はそれをテストしていませんが、それは動作するはずです。 「特別」キーのメッセージを受信するには、glutSpecialFunc
とglutSpecialUpFunc
が必要な場合もあります。
また、GLUTは本当に古いものであり、非常に良い選択肢があることに注意してください。あなたは単純でGLUT-独立した入力機能を意味するならば、GetAsyncKeyState関数となった「よりよい選択肢」によって
これはWindowsのみです。そして、Windowsは本当に古く、より良い選択肢があります。 – ybungalobill
あなたはこれらのよりよい選択肢についての詳細を伝えることができますか? – colorfulgrayscale