Причина вашей проблемы в том, что вы перезаписываете startTime пустой функцией во второй строке.Во второй раз, когда вы вызываете startTime (), он запускает пустую функцию.
Чтобы сохранить ваш код в чистоте, ваш секундомер на самом деле не должен проверять условия выигрыша или переигрывания - он должен только отслеживать счет,Остальная часть кода вашей игры может запускать и сбрасывать секундомер при возникновении таких условий.Вы могли бы иметь объект секундомера как это:
var stopwatch = {
count: 0,
intervalId: null,
start: function() {
stopwatch.intervalId = setInterval(function() {
stopwatch.count++;
}, 1000)
},
reset: function() {
if (stopwatch.intervalId) {
clearInterval(stopwatch.intervalId);
stopwatch.intervalId = null;
}
stopwatch.count = 0;
}
}
Тогда ваша игра может вызвать stopwatch.start (), когда она запускается, и stopwatch.reset (), когда она заканчивается.
Обратите внимание, что она также очищаетинтервал, когда он сбрасывается.Без этого функция внутри setInterval будет дублироваться каждый раз, вызывая потенциальные ошибки и утечку памяти.