我在做一个简单的反应计时器游戏。我唯一被卡住的事情就是计算回答的时间。
显示用户输入提示后,我将运行此函数:
var addScore = function () {
if (playing) {
setInterval(function () {
score += 10;
}, 10)
}
};因此,一旦玩家开始玩,这个函数就会启动,每10毫秒就会增加10分。我试着玩,有时我的分数显示5-7秒,即使我一回答答案就显示出来。是不是因为我加错了时间?
小提琴:http://jsfiddle.net/lee45276/f3s6waub/
发布于 2014-11-17 13:34:38
clearInterval-ing?因为如果不是这样,这些setInterval函数将会累积,每10ms将10添加到分数中,或者so.setInterval不是很精确,所以可能会发生函数延迟超过10ms的情况。(不是像您的示例中那样,将10ms转换为5000ms,但有一点。)这是一个更好的想法,不涉及计时器:var questionPosedTime =新日期();poseTheQuestion();onAnswerReceived(){ var answerReceivedTime =新日期();var answeringDelayInMilliseconds = answerReceivedTime - questionPosedTime;adjustScore(answeringDelayInMilliseconds);});
https://stackoverflow.com/questions/26966094
复制相似问题