2014-12-04 26 views
0

这很难解释为什么,但我会试着解释一下。可以说这是键盘上的速度敲击。您在两个按键之间敲击得越快,您的分数就越高(最后一部分未实现喷气式飞机)。另外,当你一个接一个地点击两个键时,它会更好。两组键盘输入之间的时间

想法是我从第一个键输入和第二个键输入时间读取时间来计算它们之间的时间 - 第一轮的增量。为了未来,我想比较第一个三角洲(点击一 - 龙头两)与第二三角洲(龙头一 - 龙头两)。在第一轮水龙头(tap one - tap two)之后,我无法进行竞争,因为我得到了三角洲和大部分时间他们都是平等的。

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; 
+0

那么你在这里粘贴的代码中,我可以看到你永远不会调用你的运行功能,你拼错你的start2变量。 – Calummm 2014-12-04 22:34:09

+0

window.onload = run; Thet不会调用它? – andris 2014-12-04 22:37:03

+0

对不起,它低于折扣 – Calummm 2014-12-04 22:38:02

回答

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输入之间的差异?如果是这种情况,可以将所有印刷机的时间戳存储在数组中。

+0

在我的代码如果我按两次相同的键它会给出错误的结果。你的这个东西排除在外。所以一切都很好。谢谢! – andris 2014-12-04 22:49:05

+0

顺便说一句,你可以解释,如果(start2)有没有条件< < =>例如,据我所知,它读取如果在start2中有值,然后... 我是对的吗? – andris 2014-12-04 22:56:38

+0

在js中,此测试将被视为'truthy'测试,即start2不等于0或null或undefined – Calummm 2014-12-04 23:00:22