Key Test
Z
X
どちらも押されていません。
キー同時押しテスト
- このページはキーを2つ同時押しした時に、両方のキーを認識するように設計したものである。
- ここでは、例として「Z」キーと「X」キーの同時押しが可能になっている。
-
通常、JavaScriptでキーを認識すると、キーコードは1つしか認識されない。しかし、
onkeydownでキーが押されはじめた時に押されたキーを管理する変数をtrueにして、onkeyupで
離れた時にそれをfalseにすることによって、複数のキーが押されているかどうかの管理ができる
ようになる。
-
この技術は、シューティングゲームで、弾を撃ちながら移動したり、斜め移動をしたり
するために必要不可欠である。そのほかにも、コマンド入力等で大変重宝することになる。
-
なお、IE8以下では動かない。IE9以上と非IEでは、function(e)のeからkeyCodeを取得しているが、
IE8以下ではwindow.eventからkeyCodeを取得することで、keyCodeを得ることができる。
面倒なのでIE8以下では動作しないようになっている。
-
改善すべき点: ボタン押しっぱなしの状態でウィンドウが非アクティブにしてキー
を離すとキーがずっと押されているという判定になってしまう。
特に、STGなどでこれをやってしまうと行動不能になってしまう恐れがある。
参考: 「JavaScript によるゲームプログラミング」(いで庵様)