0

理由を説明するのは難しいですが、私は何を説明しようとします。これがキーボードのスピードタップだとしましょう。2 つのキーの間を速くタップするほど、スコアが高くなります (最後の部分はジェットが実装されていません)。また、両方のキーを次々にタップするとより効果的です。

アイデアは、最初のキー入力と2番目のキー入力時間から時間を読み取って、それらの間の時間を計算することです-最初のラウンドのデルタ。将来的には、最初のデルタ (タップ 1 - タップ 2) と 2 番目のデルタ (タップ 1 - タップ 2) を比較したいと考えています。最初のラウンドのタップ (タップ 1 - タップ 2) の後、両方のデルタを取得し、ほとんどの場合、それらは等しいため、比較を行うことができません。

1.私が間違っていることは何ですか? すべての出力を取得して後で比較する必要がありますか? 2. また、同じキーを 2 回タップしたときの問題にどう対処すればよいですか。私はそれを無視するのではなく、登録したい.

    var start1 = 0;
    var satrt2 = 0;
    function run(){
    first();
    second();
    }
    function first(){
    document.addEventListener('keydown',function(event){
        if(event.keyCode == 37){

        start1 = new Date().getTime();
        //console.log("L " + start);
        }
        else if(event.keyCode == 39){
            var delta1 = new Date().getTime() - start1;
            console.log("first round input is " + delta1 );
            start1 = 0; 
        }
    });
    }

    function second(){
    document.addEventListener('keydown',function(event){
        if(event.keyCode == 37){

        start2 = new Date().getTime();
        //console.log("L " + start);
        }
        else if(event.keyCode == 39){
            var delta2 = new Date().getTime() - start2;
            console.log("Second round input is " + delta2 );
            start2 = 0; 
        }
    }); 
    }


    window.onload = run; 
4

1 に答える 1

0

これはあなたの質問の最初の部分でうまくいくと思います。

var start1 = 0;
var start2 = 0;

function run(){
    first();
}

function first (){
    document.addEventListener('keydown',function(event){
        if (event.keyCode == 37){            
            start1 = new Date().getTime();
            
            if (start2) {
                console.log("first round input is " + (start1 - start2));
                start2 = 0;
            }
        
        } else if (event.keyCode == 39){
            start2 = new Date().getTime();
            
            if (start1) {
                console.log("second round input is " + (start2 - start1));
                start1 = 0;
            }

        }
    });
}

run()

2番目の部分の意味がよくわかりません。すべてのキープレスを保存し、start2 入力が与えられたときにすべての start1 入力の差を出力したいですか? この場合、すべてのプレスをタイムスタンプとともに配列に保存できます。

于 2014-12-04T22:45:35.167 に答える