2014-12-04 69 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