我正在构建一个蛙蛙式游戏。当玩家到达棋盘顶部时(this.y == -25),玩家位置将重置(this.x // this.y),并且玩家得分将增加(this.points ++)。
最初是这样写的:
class Hero {
constructor() {
this.points = 0;
}
}
if (this.y == -25) {
this.points++;
setTimeout(() => {
this.x = 202;
this.y = 390;
pointCount.innerHTML = (this.points);
}, 100);
}
这会将pointCount增加7,所以我尝试通过编写以下内容来纠正它:
if (this.y == -25) {
this.points++;
setTimeout(() => {
this.x = 202;
this.y = 390;
pointCount.innerHTML = (this.points / 7);
}, 100);
}
但是现在每隔一段时间(不是每次,并且似乎是随机的)它将使该点增加0.85714。
有什么想法吗?
答案 0 :(得分:0)
有时您的函数被调用7次,有时被调用6次。将点除以7不是可靠的解决方法。您可以设置一个标志,以确保评分代码仅被调用一次。
let canScore = true;
if (this.y == -25 && canScore ) {
canScore = false;
this.points++;
setTimeout(() => {
this.x = 202;
this.y = 390;
pointCount.innerHTML = (this.points);
canScore = true;
}, 100);
}