我做了一个简单的反应计时器游戏。我唯一能坚持的就是计算回答所需的时间。
显示用户输入提示后,我正在运行此功能:
var addScore = function () {
if (playing) {
setInterval(function () {
score += 10;
}, 10)
}
};
因此,一旦玩家开始玩这个功能,每10毫秒就会增加10分。我尝试过玩,有时我的分数显示5-7秒,即使我在答案显示后立即回答。是因为我错误地添加了时间吗?
答案 0 :(得分:3)
你是clearInterval
吗?因为如果没有,那些setInterval
函数将会累积,每个函数每10分钟左右就会为评分添加10
。
setInterval
不是很精确,可能会导致您的函数延迟超过10毫秒。 (在你的例子中,你没有达到10毫秒变成5000毫秒,但有点。)这是一个更好的主意,不涉及计时器:
var questionPosedTime = new Date();
poseTheQuestion();
onAnswerReceived(function() {
var answerReceivedTime = new Date();
var answeringDelayInMilliseconds = answerReceivedTime - questionPosedTime;
adjustScore(answeringDelayInMilliseconds);
});