我试图做简单的游戏,但我有问题管理计数器和清除时间后,计数器达到0或我点击重置按钮。它在达到0时工作,但是当我尝试实现它以重置按钮时,计数器正在重置,然后以双倍的速度运行。
let counter = 60;
let healthPoints = 3;
let points = 0;
document.querySelector('.reset').addEventListener('click', resetGame);
function countTime() {
const timer = document.querySelector('.timer');
const countTime = setInterval(function () {
counter--;
timer.innerHTML = + counter;
if (counter == 0) {
alert('Game over')
clearInterval(countTime);
}
}, 1000)
}
function resetGame() {
newBoard();
counter = 60;
healthPoints = 4;
points = 0;
clearInterval(countTime);
}发布于 2019-01-14 20:30:50
传递给countTime函数中的clearInterval函数的resetGame参数是对名为countTime的函数的引用。您需要重命名该变量并在全局声明它:
let counter = 60;
let healthPoints = 3;
let points = 0;
let t = null;
document.querySelector('.reset').addEventListener('click', resetGame);
function countTime() {
const timer = document.querySelector('.timer');
t = setInterval(function () {
counter--;
timer.innerHTML = + counter;
if (counter == 0) {
alert('Game over')
clearInterval(t);
}
}, 1000)
}
function resetGame() {
newBoard();
counter = 60;
healthPoints = 4;
points = 0;
clearInterval(t);
}https://stackoverflow.com/questions/54188583
复制相似问题