OpenGL /GLUTを使用して、「a」と「j」の2つのキーが同時に押されているかどうかをどのように検出しますか?
(このプログラムは OSX GCC、Windows GCC、Windows VS2005 でコンパイルする必要があるため、OS 依存のハックは行わないでください。)
次のことを試してください。
glutIgnoreKeyRepeat
物理的なキーダウン/キーアップイベントのみを取得するために使用しますglutKeyboardFunc
キーダウンイベントをリッスンするコールバックを登録するために使用します。glutKeyboardUpFunc
キーアップイベントをリッスンするコールバックを登録するために使用します。bool keystates[256]
キーボードキーの状態を格納する配列を作成します。keystates[key] = true
ます。keystates[key] = false
ます。(keystates['a'] || keystates['A']) && (keystates['j'] || keystates['J'])
。その方向を見てください。私はそれをテストしていませんが、動作するはずです。また、「特別な」キーのメッセージを受信するglutSpecialFunc
必要がある場合もあります。glutSpecialUpFunc
また、GLUTは本当に古いものであり、はるかに優れた代替手段があることに注意してください。
よりシンプルで貪欲に依存しない入力関数を意味する場合は、「より良い代替手段」によって GetAsyncKeyState 関数で取得します...