javascript - 每10点后加速JS游戏中的一个对象
问题描述
我正在尝试每 10 点加速 JS 游戏 x2 中的一个对象。在游戏中我同时使用
let game = setInterval(draw,100);
我应该尝试哪种技术?我一直在寻找很长一段时间,但尝试通过更改 setInterval 来做到这一点并没有按预期工作(它一遍又一遍地加速)。
非常感谢任何建议(不是在寻找现成的代码,只是说!)。
解决方案
您只需要抓住game
从setInterval
. 您可以使用它来停止当前的间隔计时器,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)
推荐阅读
- python - 如何在 Python 中使用嵌套的 % 打印格式和 exec?
- javascript - 内部函数参数是如何传递的?
- clojure - 如何在 Clojure 中实现并行逻辑或提前终止
- c# - 在 ASP.NET Core API 中验证格式无效的值
- python - 为什么这段代码会生成多个文件?我想要 1 个包含所有条目的文件
- corda - 我是否能够序列化 Transaction Builder 以将其发送给另一方?
- java - BluetoothAdapter.getBondedDevices 虽然已配对但返回零设备,为什么?
- c++ - 从 clang-tidy 分析中排除头文件
- java - AWS 网络负载均衡器 (NLB) 是否支持 ALPN?
- mocha.js - 如何在 Mocha 测试中添加自定义成功消息?