2010-12-13 17 views
4

私は単純なjavascriptゲームを作っています。特定のキーが押されているかどうかを確認する必要があります。私はonkeydownイベントにバインドしようとしましたが、問題は2つあります。もう一つは、イベントをスパムし始める前にキーを押したままにしておく。JavaScriptがキーボードの状態を確認しています

私のコードでは、イベントがあるか、またはミリ秒ごとにキーが押されているかどうかをチェックする関数があります。これがゲームなので、私は本当にどちらの問題もないでしょう。前もって感謝します。あなたはonkeydownを使用して、一緒にOnKeyUpをすることができます

+0

あなたはバインディングの世話をするためにJavaScriptライブラリを使用すると考えましたか?それは、ゲームが反応し続けることを確実にするために、キーアップ/キーダウンを動的に設定するのに役立ちます。 – Mike

+0

私は、キーが押されたかどうかのチェックを扱うライブラリを見たことがありません。私は現在jQueryを使用していますが、その機能を持っているとは思いません。あなたがこれを行うライブラリを提案できれば、私は非常に感謝しています。 –

答えて

6

var pressed={}; 
element.onkeydown=function(e){ 
    e = e || window.event; 
    pressed[e.keyCode] = true; 
} 

element.onkeyup=function(e){ 
    e = e || window.event; 
    delete pressed[e.keyCode]; 
} 

このコードを使用すると、すべてのを保存するには、pressed変数にキーコードを押して、キーが解放されたとき、あなたはそれを削除します。したがって、どのキーが押されているかを知る必要があるときは、押されたオブジェクトを通してfor(.. in ..)でループすることができます。

+0

ありがとう!これは私が探していたものでした。 –

関連する問題