2016-04-03 14 views
-2

数字を正しく組み合わせると、レベルをクリアするのに役立つ効果が得られるゲームを作ろうとしています。これを行うための私の計画は、キーが押されているかどうかテストし、それに応じて変数を変更するif文を使用することでした。これは非常に簡単なはずですが、私の試みは悲惨に失敗しましたが、これを適切に説明するページは見つかりませんでした。だから、誰かが私はJavaScriptのif文のための数字キーのプレスを検出する方法を知っていますか?if文の数字キーの押下を検出しました

+1

これまでのコードを投稿できますか?何かが働いている? – JordanHendrix

+0

このライブラリは、起動するのに適しているかもしれないし、多分活用しているかもしれません - https://github.com/namuol/cheet.js – dmoo

+0

あなたはあなたを見ていませんでしたか?私はちょうど50の質問のようにして見つけた:http://stackoverflow.com/questions/2297524/javascript-jquery-keypress-logging – JordanHendrix

答えて

0

特定の数字のシーケンスを入力する場合は、キャッシュを使用して各キーストロークを確認する必要があります。以下はその例です。私は1、2、3の順番にしたいと指示しました。間違っているとシーケンスがリセットされます。これも完了し、この場合もリセットされます。

試してみてください。それを実行して、1を押し、次に2を押し、次に3を押します。シーケンスを中断するには、再起動する必要があります。

//press 1, then 2 then 3 
 
var code = [49, 50, 51] 
 
var cache = []; 
 

 
function checkCode(eve) { 
 

 
    var keycode = eve.keyCode || eve.which; 
 

 
    if(keycode === cache.shift()){ 
 

 
     if(!cache.length){ 
 
     //resets if you did it. do not include if you want once. 
 
     replenishCache(); 
 

 
     //do whatever you do here. 
 
     doThing(); 
 
     } 
 

 
    } else { 
 
     replenishCache(); 
 
    } 
 
} 
 

 
function doThing(){ 
 
    alert('sequence entered'); 
 
} 
 

 
function replenishCache(){ 
 
    cache = code.slice(0); 
 
} 
 

 
replenishCache(); 
 

 
window.addEventListener('keypress', checkCode, false);

私はこのコードは任意のフレームワークのコンテキスト、またはモジュールまたはパターンで完全ではないことを追加します。私はちょうど説明するためにウィンドウにイベントを添付しました。あなたは何をしているにしてもこれをどのように移行するか考える必要があります。例えば、よりグローバルな関数を直接呼び出すのではなく、この場合はdoThingをプラグインまたはモジュールに渡すべきでしょう。文字コードのシーケンスと同じこと。

関連する問題