我有两个功能,一个用于计算距离物体的鼠标距离,另一个用于计算玩家得分。当鼠标离物体至少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;
}
由于某种原因,当距离为50px及以下时,上述结果会导致分数停止。
我尝试输出(mouseDistance<200)
条件并且它很好,在距离200px时它表示&#34; true&#34;它只在200px以上停止了。
如果是这样,当鼠标距离为50px时,分数不应该停止更新,但确实如此:P halp
答案 0 :(得分:1)
当距离为50px及以下时,添加的分数开始达到或低于0.5。舍入删除了添加的分数。
假设距离为40px,玩家的得分为150.新得分为150.4(得分+鼠标距离/ 100)。但当你绕过那个时,你会得到150分,而得分保持不变。