碰撞后,每次碰撞的“我的分数”被添加为1以上

时间:2019-06-12 20:24:38

标签: javascript

当我的玩家与宝石碰撞时,我希望每次发生这种情况时,分数都增加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);
    }
};

更新:现在可以工作的问题是设置的超时时间。一旦摆脱它,它就会起作用。

1 个答案:

答案 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;