奇怪的条件行为 Javascript

Weird condition behaviour Javascript

我有两个函数,一个计算鼠标与物体的距离,另一个计算玩家得分。当鼠标距离物体至少200px时开始计分,鼠标越近得分越高。

function calculateMouseDistance() {
    document.onmousemove = handleMouseMove;
    var rect = c.getBoundingClientRect();
    function handleMouseMove(e) {
        mouseX = e.clientX - rect.left;
        mouseY = e.clientY - rect.top;
    }
    mouseDistanceX = object.x - mouseX;
    mouseDistanceY = object.y - mouseY;
    mouseDistance = Math.round(Math.sqrt((mouseDistanceX*mouseDistanceX)+(mouseDistanceY*mouseDistanceY)));
}

function calculateScore() {
    if (mouseDistance<200) {
        score = Math.round(score + (mouseDistance / 100));
    }
    document.getElementById("tester").innerHTML = "Score: " + score + " " + "Distance: " + mouseDistance;
}

由于某些原因,当距离为 50 像素及以下时,上述结果会导致分数停止。

我尝试输出 (mouseDistance<200) 条件,它很好,在 200px 距离它说 "true" 并且它只在 200px 以上停止为真。

如果是这样,那么当鼠标距离为 50px 时分数不应该停止更新,但它确实会停止更新:P halp

当距离为 50px 及以下时,添加的分数开始达到或低于 0.5。四舍五入会删除添加的分数。

假设距离是 40px,玩家的分数是 150。新的分数是 150.4(分数 + 鼠标 distance/100)。但是当你四舍五入时,你得到 150,分数保持不变。