У меня есть такая функция:
function foundGold(ptX, ptY) {
var gridX = Math.floor(ptX / 36);
var gridY = Math.floor(ptY / 36);
if(mapArray[gridY][gridX] == 3) {
return true;
}
}
if(foundGold(boatPosX + 36, boatPosY)) {
goldAmount+= 1;
gold.innerHTML = goldAmount;
}
Он проверяет положение моего игрового персонажа и, если он наступает на определенную часть массива, это означает, чтоусловие истинно и функция продолжает работать.Так что в этом случае я проверяю в другой функции, если foundGold
истинно, и если это так, дайте пользователю немного золота.Проблема в том, что, хотя условие истинно, игрок будет продолжать получать бесконечное количество золота, если только он не уйдет с этой позиции, и условие больше не будет истинным.
Теперь, как я могу сделать это так, чтобы даже если пользователь продолжал стоять в одном месте и условие выполнялось в течение всего времени, он не продолжал получать золото, и функция будет выполняться только один раз, независимо откак долго условие истинно?
Я не хочу продолжать добавлять +=1
к goldAmount
все время, пока условие истинно, только один раз.Можно ли выйти из него после одного прогона или что-то в этом роде?