这是我第一次使用JavaScript,所以我确信这是一个简单的问题,但我无法弄清楚。基本上,我正在创建一个游戏,我需要添加一个功能,这样如果玩家没有移动20秒,他们会收到提醒。
我让它工作到提示器会在玩家最后一次点击后20秒弹出,但它似乎会不断弹出,无论他们是否在20秒内移动。
这是我的代码:
function UpdateMoveCount() {
var timer = setInterval(setReminderTimer, 1000);
var moveReminder = 0;
function setReminderTimer() {
if(moveReminder == 20) {
document.getElementById("move").style.visibility = "visible";
clearInterval(timer);
} else {
moveReminder++;
}
}
}
每次玩家点击时都会调用 UpdateMoveCount()
。
有人有什么想法吗?
答案 0 :(得分:1)
这是因为当用户点击时,你使用setInterval但你没有检查用户在点击按钮后是否移动。因此,用户将在点击按钮20秒后弹出 创建一个函数来检查用户是否已移动并在其中使用clearInterval
function UpdateMoveCount() {
var timer = setInterval(setReminderTimer, 1000);
var moveReminder = 0;
function setReminderTimer() {
if(UserMoved) clearInterval(timer);
else if(moveReminder == 20) {
document.getElementById("move").style.visibility = "visible";
clearInterval(timer);
}
else {
moveReminder++;
}
}
}
答案 1 :(得分:1)
var timer = null;
function UpdateMoveCount() {
if(timer) clearInterval(timer);
timer = setInterval(setReminderTimer, 1000);
var moveReminder = 0;
function setReminderTimer() {
if(moveReminder == 20) {
document.getElementById("move").style.visibility = "visible";
clearInterval(timer);
} else {
moveReminder++;
}
}
}