问答详情
源自:8-6 取消计时器clearTimeout()

自己写了个贪吃蛇,但是清除定时器的时候有点问题

// 绘制每一帧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()的话,界面会回到初始状态,但是定时器好像没有被清除,蛇会继续运动。

这是为啥?


提问者:随机一个 2019-11-27 17:10

个回答

  • BS兵兵
    2019-11-27 21:08:00
    已采纳

    完整代码呢?能借鉴下吗?

  • 子墨静嘉
    2021-08-19 16:48:54

    不会吧 你学完前边这些就写出来了游戏吗