当我的玩家与宝石碰撞时,我希望每次发生这种情况时,分数都增加1。但是,每次发生时,我的分数都会增加超过1。请帮助。
我尝试使用布尔值,但由于仅一次将1加到我的分数中,所以它不起作用。
var score = 0;
gemG.prototype.update = function(){
if ((this.x > player.x - 75 && this.x < player.x + 75) && (this.y > player.y - 75 && this.y < player.y + 75)) {
setTimeout(()=>{
document.getElementById("scoreNum").innerHTML = score += 1;
this.y= Math.floor(Math.random() * 150) + 50;
this.x=Math.floor(Math.random() * 100)+100
player.y = 400;
player.x = 200;
},200);
}
};
更新:现在可以工作的问题是设置的超时时间。一旦摆脱它,它就会起作用。
答案 0 :(得分:0)
您的当前逻辑是每次更新,如果玩家发生冲突,请提高得分。相反,您希望您的逻辑在每次更新时都保持不变,如果玩家发生碰撞但之前没有发生碰撞,请增加得分。为此,您需要将先前的状态存储在某个位置:
import Levenshtein
c = pd.DataFrame([
[Levenshtein.ratio(a, b) for b in lst]
for a in df.column
], df.index, lst)
c
good dog bad cat
0 0.266667 1.000000
1 1.000000 0.266667
2 0.000000 0.600000
3 0.545455 0.200000
然后在每张支票上
let didCollide = false;