我有一个这样的函数:
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
只要情况是真的,只有一次。是否可以在运行一次或类似的操作后退出?