setInterval的替代方案,可以实时更改

时间:2019-05-02 00:11:30

标签: javascript arrays object settimeout setinterval

我正在为一个蛇游戏工作,任务是在“吃”蛇时提高蛇的速度。

我用setInterval画蛇,但是现在我必须逐渐提高速度,我有点迷路了。我也尝试过setTimeout,但是我认为我不了解如何正确使用它。

//when the snake "eats"

if (snakeX == food.x && snakeY == food.y){
    food = {
        x : Math.round(Math.random()*(cvsWidth/snakeWidth-1)),
        y : Math.round(Math.random()*(cvsHeight/snakeHeight-1))
    };
    score++;
} else {
    //Remove last
    snake.pop();
}
//speed
var speed = 100;
setInterval(draw,speed);

1 个答案:

答案 0 :(得分:4)

setInterval分配给变量可以让您使用clearInterval清除它并使用新的速度:

var interval = setInterval(draw, speed);

在您的snake中:

score++;
speed++; //Or wherever you add to speed
clearInterval(interval);
interval = setInterval(draw, speed);