自己写了个贪吃蛇,但是清除定时器的时候有点问题
// 绘制每一帧function act() { if(d) { direction = d; } // 进行碰撞检测,如果没碰到返回true if(snake.move(direction)) { drawBackground(); snake.draw(); food.draw(); } else { // 撞到了,游戏结束 gameover(); }}function start() { act(); timer = setTimeout(start, interval);}pause.addEventListener("click", function() { if(pause.innerHTML === "暂停") { pause.innerHTML = "继续"; clearTimeout(timer); window.alert("游戏暂停"); } else { pause.innerHTML = "暂停"; start(); }})function gameover() { clearTimeout(timer); window.alert("游戏失败!"); init();}
pause正常工作,按下暂停按钮蛇就不动了。但是假如是撞墙触发了gameover()的话,界面会回到初始状态,但是定时器好像没有被清除,蛇会继续运动。
这是为啥?