Javascript:+1计数器/条件语句的限制

Javascript:+1计数器/条件语句的限制,javascript,limit,counter,Javascript,Limit,Counter,在我的javascript游戏中,我有一个函数,使用setInterval每隔0.1秒调用一次: updateTimerID = setInterval(function(e) {checkProgress();}, 100); 我将用户分数存储在一个变量中,并在checkProgress函数中有一个条件语句,用于检查滑块x位置是否在45-48之间: var score = 0; function checkProgress(){ if( slider_1.x => 45 &

在我的javascript游戏中,我有一个函数,使用setInterval每隔0.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
    }

}

当这种情况发生时,我将score变量增加1。我的问题是,我只希望分数每次更新1次,而不是每次更新1次-因此,我的函数每.1秒调用一次-此时我的分数每次至少增加3次

    if( slider_1.x => 50 && slider_1.x <= 60 ) {
        score ++;
    }

我可以每次将其限制为1吗?

您可以将分数更新时间存储在一个变量中,而不是从当前时间中减去它,以查找上次更新所经过的时间是否大于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();

        }

    }

也许是这样吧

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;
    }
}

像这样的东西就行了

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;
    }
}

我只希望分数每次更新1,而不是每次更新1。。。对不起,什么?你的意思是说在每次checkProgress通话中,分数都会增加三倍,是吗?不相关的提示:你可以只写setIntervalcheckProgress,100;谢谢你的提示:谢谢你。我最后还是用了这个,现在我想用就用