ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript ゲームで同時に押されたキーを検出するにはどうすればよいですか?

JavaScript ゲームで同時に押されたキーを検出するにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-14 21:36:16771ブラウズ

How Can I Detect Simultaneously Pressed Keys in JavaScript Games?

JavaScript で同時に押された複数のキーを検出する方法

問題ステートメント

JavaScript ゲーム エンジンでは、スペース キーを押すとジャンプ機能がトリガーされます、右方向への移動は、右矢印キーを押すとトリガーされます。この問題は、ユーザーが右矢印キーを押してからスペース キーを押したときに発生します。このシナリオでは、キャラクターがジャンプして動きを停止します。目的は、これらのシナリオを効果的に処理するために複数のキーが同時に押されたかどうかを判断することです。

解決策

複数のキーストロークを検出するには、イベント リスナー関数:

onkeydown = onkeyup = function(event) {
  // event object contains information about the key pressed
  const key = event.keyCode; // Use event.key for modern browsers (more reliable)
  // map stores the pressed keys and their current states (true/false)
  const map[key] = event.type == "keydown";
};

このコード スニペットは、keydown および keyup イベント リスナーを設定します。キーが押されると、その keyCode がその状態 (押された場合は true、離された場合は false) とともにマップ オブジェクトに記録されます。

キーの組み合わせを確認する

同時に押された複数のキーを確認するには、条件付きロジックを使用できます:

if (map[key1] && map[key2] && map[key3]) {
  // Do something when all three keys are pressed
}

このアプローチにより、包括的なキーの組み合わせが可能になります。

その他の考慮事項

  • ブラウザのデフォルト: 一部のブラウザには、特定のキーの組み合わせ (ブックマークの Ctrl D など) に対するデフォルトのアクションがあります。競合を防ぐには、event.preventDefault() を使用してデフォルトのアクションを停止することをお勧めします。
  • Event.keyCode の非推奨: 最新のブラウザでは、event.key の代わりに、event.key を使用する必要があります。非推奨のevent.keyCode。
  • return false;の使用: return 間違い;イベントの伝播やキー押下のデフォルト動作を防ぐために使用できますが、この方法では予期せぬ結果が生じる可能性があります。
  • イベント ハンドラー: よりスムーズなイベント処理と、予測可能な動作。
  • ヘルパー クラス: カスタム ヘルパー クラスは、キー押下の状態を管理し、特定のキーの組み合わせに対するウォッチポイントを設定するタスクを簡素化します。

以上がJavaScript ゲームで同時に押されたキーを検出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。