可以实时更改的 setInterval 的替代方法
Alternative to setInterval that can be altered live
我正在为一项任务开发贪吃蛇游戏,蛇在 "eats" 时必须提高速度。
我用 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);
将setInterval
分配给一个变量允许您使用clearInterval
清除它并使用新的速度:
var interval = setInterval(draw, speed);
在你的snake
中:
score++;
speed++; //Or wherever you add to speed
clearInterval(interval);
interval = setInterval(draw, speed);
我正在为一项任务开发贪吃蛇游戏,蛇在 "eats" 时必须提高速度。
我用 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);
将setInterval
分配给一个变量允许您使用clearInterval
清除它并使用新的速度:
var interval = setInterval(draw, speed);
在你的snake
中:
score++;
speed++; //Or wherever you add to speed
clearInterval(interval);
interval = setInterval(draw, speed);