首页 > 解决方案 > 每10点后加速JS游戏中的一个对象

问题描述

我正在尝试每 10 点加速 JS 游戏 x2 中的一个对象。在游戏中我同时使用

let game = setInterval(draw,100);

我应该尝试哪种技术?我一直在寻找很长一段时间,但尝试通过更改 setInterval 来做到这一点并没有按预期工作(它一遍又一遍地加速)。

非常感谢任何建议(不是在寻找现成的代码,只是说!)。

标签: javascripthtmlhtml5-canvas

解决方案


您只需要抓住gamesetInterval. 您可以使用它来停止当前的间隔计时器,clearInterval()然后以您的新速率启动一个新的计时器。由于您没有发布太多代码,这里有一个人为的示例,每 10 个数字加速计数为 100:

let i = 0
let speed = 1
let basespeed = 1000
function play() {
    console.log("play", i++)
    if (i % 10 == 0) {
        speed *= 2
        clearInterval(int)
        if (i >= 100) return
        int = setInterval(play,basespeed/speed)
    }    
}

let int = setInterval(play, basespeed)


推荐阅读