2009-05-15 4 views

答えて

15

次のことを試してみてください。取得のみ物理のKeyDown/keyUpイベントに

  1. 使用glutIgnoreKeyRepeatイベント
  2. glutKeyboardFuncを使用して、keydownイベントを待機しているコールバックを登録します。
  3. glutKeyboardUpFuncを使用して、keyupイベントをリッスンするコールバックを登録します。
  4. bool keystates[256]アレイを作成して、キーボードのキーの状態を保存します。
  5. keydownコールバックでイベントを受信する場合は、keystates[key] = trueと設定します。
  6. キーアップコールバックでイベントを受信する場合は、keystates[key] = falseと設定します。
  7. 実行ループで、(keystates['a'] || keystates['A']) && (keystates['j'] || keystates['J'])をテストします。

その方向を見てください。私はそれをテストしていませんが、それは動作するはずです。 「特別」キーのメッセージを受信するには、glutSpecialFuncglutSpecialUpFuncが必要な場合もあります。

また、GLUTは本当に古いものであり、非常に良い選択肢があることに注意してください。あなたは単純でGLUT-独立した入力機能を意味するならば、GetAsyncKeyState関数となった「よりよい選択肢」によって

+4

あなたはこれらのよりよい選択肢についての詳細を伝えることができますか? – colorfulgrayscale

関連する問題