2014-02-27 39 views
0

在我的JavaScript的比賽,我有一個是每0.1秒會調用setInterval函數:的Javascript:+ 1限制爲計數器/條件語句

updateTimerID = setInterval(function(e) {checkProgress();}, 100); 

我存儲用戶評分在變量中,有一個條件語句內部的checkProgress功能時我的滑塊x位置落在45之間,其檢查 - 48:

var score = 0; 

function checkProgress(){ 

    if(slider_1.x => 45 && slider_1.x <= 48) { 
     score = score + 1 
    } 

} 

我然後通過一個增加得分變量時發生這種情況。我的問題是,我只是想將比分由1每一次更新,而不是每次 - 所以我被調用函數每0.1秒 - 此刻我的得分是每次

if(slider_1.x => 50 && slider_1.x <= 60) { 
     score ++; 
    } 
增加至少3

我可以每次限制爲1嗎?

+3

「我只想比分是每次更新1次,而不是每次「...對不起,什麼? –

+0

你打算在每個checkProgress()調用上說,分數正在增加三倍,是嗎? –

+1

無關的提示:你可以寫'setInterval(checkProgress,100);' – zord

回答

0

像這樣的事情,也許?:

var isOver = false; 

function checkProgress(){ 
    if(slider_1.x => 45 && slider_1.x <= 48 && !isOver) { 
     score = score + 1; 
     isOver = true; 
    } else if(slider_1.x < 45 && slider_1.x > 48) { 
     isOver = false; 
    } 
} 
+0

謝謝你。我最終與這個一起去了,現在按我的意願工作 –

0

,你可以做到這一點的儲存比分更新時間以可變比從目前的時間去尋找從上次更新過去的時間它。減去大於小於1秒

var score = 0; 
var last_update =0; 
    function checkProgress(){ 

     if(slider_1.x => 45 && slider_1.x <= 48 && ((new Date().getTime()-last_update) > 1000)) { 
      score = score + 1 
      last_update=new Date().getTime(); 

     } 

    } 
0

像這樣的事情會做的伎倆

var score = 0; 
var inc = true; 

function checkProgress(){ 

    if(slider_1.x => 45 && slider_1.x <= 48) { 
     if(inc) 
     { 
      score = score + 1 
      inc = false; 
     } 
    } 
    if(slider_1.x < 45 || slider_1.x > 48) 
    { 
     inc = true; 
    } 
}