最終更新 2003 09/22
サンプルのダウンロード → API_GetAsyncKeyState.lzh(37k)
全ソースコード
GetAsyncKeyState 関数
対応しているバージョン
95, 98, Me, NT3.1以降, CE1.0以降, 2000, XP
使用するヘッダとライブラリ
winuser.h
user32.lib
|
ある特定のキーが押されているかどうかを調べたい時は GetAsyncKeyState()
関数を使って調べることができます。
WM_KEYDOWN や WM_KEYUP メッセージで WPARAM の値を調べたりするよりも
使い勝手が良いです。
必要なキーだけ調べることができますし、同時押しの判定にも使えます。
ゲームではこれを使うことになるでしょう。
使い方は至ってシンプルで
if( GetAsyncKeyState( キーコード ) ){ /* キーが押されている */ }
こんな感じで押されているかを調べます。
キーコードには仮想キーコードを使うと分かりやすくて良いです。
仮想キーコードと、対応するキーの一覧を用意しましたので、よければ
参考に使って下さい。
仮想キーコード一覧
GetAsyncKeyState() 関数を使うと、マウスのボタンが押されているかも
調べることができます。
ただ、GetAsyncKeyState() 関数を使うと、3つ以上の同時押しは
判定できません。
これはウィンドウズのシステム的な仕様なのか、キーボードの
ハードウェア的な仕様なのか分かりませんが、どうすることも
できません。
|