两组键盘输入之间的时间

时间:2014-12-04 22:27:06

标签: javascript keyboard-events gettime

很难解释原因,但我会尝试解释一下。让我们说这是键盘上的速度攻击。您在两个键之间点击的速度越快,得分就越高(最后一部分没有实现喷射)。当你一个接一个地敲击两个键时,它会更好。

想法是我从第一个键输入读取时间和第二个键输入时间来计算它们之间的时间 - 第一轮的delta。为了将来我想比较第一个delta(点击一个 - 点击两个)和第二个delta(点击一个 - 点击两个)。我无法进行比赛,因为在第一轮攻击之后(点击一次 - 点击两次)我得到了两种增量,而且大多数时候它们是相同的。

1。我做错了什么?我应该获得所有输出并在以后进行比较吗? 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; 

1 个答案:

答案 0 :(得分: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()




我不确定你的第二部分是什么意思。您是否希望存储每个按键,然后在给出start2输入时输出所有start1输入之间的差异?如果是这种情况,可以将所有带有时间戳的印刷机存储在一个数组中。