Javascript 我想用变量替换setInterval
我正在做一个蛇形游戏,但是出现了一些问题 几乎一切正常,但问题是在执行另一个时,我必须停止一个Javascript 我想用变量替换setInterval,javascript,Javascript,我正在做一个蛇形游戏,但是出现了一些问题 几乎一切正常,但问题是在执行另一个时,我必须停止一个setInterval。我认为我应该使用clearInterval 我希望按下向右箭头键时红色矩形开始移动,但要将setInterval用作var,以便我可以用clearInterval替换var 我该怎么办 <html> <body> <canvas id="gamecanvas" width="1330" height="625"></canvas&
setInterval
。我认为我应该使用clearInterval
我希望按下向右箭头键时红色矩形开始移动,但要将setInterval
用作var
,以便我可以用clearInterval
替换var
我该怎么办
<html>
<body>
<canvas id="gamecanvas" width="1330" height="625"></canvas>
<script>
var canvas;
var canvasContext;
window.onload = function () {
canvas = document.getElementById("gamecanvas");
canvasContext = canvas.getContext("2d");
}
function both() {
moveSnake();
drawEvery();
};
function moveSnake() {
snakeX = snakeX + snakeSpeedX;
if (snakeX + 10 >= 500 + 400) {
snakeX = 450;
}
}
window.addEventListener('keydown', this.changedir, false);
function changedir(event) {
var code = event.keyCode;
//right arrow key
if (code == 39) {
//this set interval needs to be replaced by a var.
setInterval(both, 1000 / 30)
};
}
function drawEvery() {
canvasContext.fillStyle = "yellow";
canvasContext.fillRect(0, 0, canvas.width, canvas.height);
canvasContext.fillStyle = "black";
canvasContext.fillRect(canvasX, canvasY, 500, 500);
canvasContext.fillStyle = "red";
canvasContext.fillRect(snakeX, snakeY, 20, 20);
canvasContext.fillStyle = "green";
canvasContext.fillRect(500, 200, 20, 20);
}
</script>
</body>
</html>
var帆布;
var canvasContext;
window.onload=函数(){
canvas=document.getElementById(“gamecanvas”);
canvasContext=canvas.getContext(“2d”);
}
函数二(){
moveSnake();
抽屉很();
};
函数moveSnake(){
蛇X=蛇X+蛇皮X;
如果(蛇+10>=500+400){
蛇X=450;
}
}
window.addEventListener('keydown',this.changedir,false);
函数changedir(事件){
var代码=event.keyCode;
//右箭头键
如果(代码==39){
//此设置间隔需要替换为变量。
设置间隔(两者,1000/30)
};
}
函数(){
canvasContext.fillStyle=“黄色”;
canvasContext.fillRect(0,0,canvas.width,canvas.height);
canvasContext.fillStyle=“黑色”;
canvasContext.fillRect(canvasX,canvasY,500500);
canvasContext.fillStyle=“红色”;
canvasContext.fillRect(snakeX,snakeY,20,20);
canvasContext.fillStyle=“绿色”;
canvasContext.fillRect(500,200,20,20);
}
返回一个有效期
,您可以使用它在以后清除间隔
//this set interval needs to be replaced by a var.
var interval = setInterval(both, 1000/30);
以后你可以用
clearInterval(interval)
这里需要注意的一点是,变量必须在使用clearInterval的同一范围内声明