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

JavaScript は同時に押された複数のキーをどのように検出できるのでしょうか?

Linda Hamilton
リリース: 2024-12-14 07:43:15
オリジナル
941 人が閲覧しました

How Can JavaScript Detect Multiple Simultaneously Pressed Keys?

JavaScript を使用して複数のキーが同時に押されたかどうかを検出する方法

問題ステートメント

複数のキーが同時に押された場合、ゲーム エンジンで問題が発生する可能性がありますキー検出の問題。たとえば、スペースバーを押してジャンプし、右矢印キーを押して右に移動すると、ジャンプ後にキャラクターの動きが止まる場合があります。これは、キーの押下を検出するために使用される keydown 関数が複数の同時キーストロークを処理できないためです。

解決策

  1. 押されたキーを追跡するための JavaScript マップ オブジェクトを作成します。
var map = {};
ログイン後にコピー
  1. キーダウンとキーアップの両方にイベント リスナーをアタッチしますイベント。
onkeydown = onkeyup = function(e) {
  e = e || event;
  map[e.keyCode] = e.type == 'keydown';
};
ログイン後にコピー
  1. ゲーム エンジン ロジック内で複数のキーが同時に押されていないか確認してください。
if (map[17] && map[16] && map[65]) {
  // CTRL+SHIFT+A pressed
}
ログイン後にコピー

追加メモ

  • keyCode は非推奨となり、押されたキーの文字列表現を返す key が優先されます。 (例: A の "a")。
  • 後者は以前のハンドラーをオーバーライドするため、element.onevent の代わりに addEventListener を使用します。
  • event.preventDefault() を使用してデフォルトのブラウザーアクションを防止します。
  • 複数のキー検出ロジックを抽象化するヘルパー クラスまたは関数を作成することを検討してください。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート