いちばんやさしいゲームの作り方

文系の人でも、数理学がわからない人でもゲームプログラミングをマスターできるブログ

指定したキーが押されているかを取得するためには GetAsyncKeyState() 関数を使います。

if (GetAsyncKeyState(VK_LEFT) & 0x8000) {
  player.x -= player.moveSpeed;
}
if (GetAsyncKeyState(VK_RIGHT) & 0x8000) {
  player.x += player.moveSpeed;
}

押されているかを取得したいキーは仮想キーコードによって指定します。 Windows の仮想キーコードを参照ください。

もし、引数で渡した仮想キーに対応するキーが押されていた場合は 0×8000 との and で真になります。前述のサンプルのように判定することでキーが押された場合に if 文の中身が実行されるようになります。

ちなみに…

if (GetAsyncKeyState(VK_LEFT)) {
  // 押されたときの処理
}

…と、書いても問題なく動作する場合が多くありますが、その場合はキーが離された次の関数実行で誤判定を起こします。具体的には押されていないのに押されていると判定されます。

Contributions




Trackback URL

メルマガ登録・解除
 
挫折不可能!初級ゲームプログラミング完全マニュアル
RSS track feedいちばんやさしいゲームの作り方 カウンター
ブログSEO対策:track word あわせて読みたい SEO STATUS