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

来源:8-6 取消计时器clearTimeout()

随机一个

2019-11-27 17:10

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

这是为啥?


写回答 关注

2回答

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

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

    随机一个

    https://git.imooc.com/xy8863j/DoodleSnake 非常的简陋……不过上面那个问题解决了,仿佛是自己要举起自己……

    2019-11-27 22:51:55

    共 1 条回复 >

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

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

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468196 学习 · 21891 问题

查看课程

相似问题