我有一些javascript会生成一个随机数,计入毫秒数(0到10秒之间)。
除此之外,我使用getTime()
方法设置开始时间,稍后再使用stoptimer-starttimer
方法设置停止时间。
我希望得到时差(millisecondsToPress = Math.floor((Math.random()*100)+1)*1000;
startTime = attempt.getCurrentTime();
)和我随机选择的毫秒之间的毫秒差异。
类似:随机毫秒为1.3秒,时差为1.用户关闭0.3秒。
stopTime = attempt.getCurrentTime();
showResult();
稍后一个showresult被叫来停止时间并且应该做数学
var d = new Date();
return d.getTime();
这是getTime函数:
if (secondsPressed >= this.millisecondsToPress) {
//The timedifference is bigger than the toPress. The player overshot!
result = secondsPressed - this.millisecondsToPress;
} else {
//The player undershot
result = this.millisecondsToPress - secondsPressed;
}
现在的showresult(哪个错了:-p) var secondsPressed = this.stopTime - this.startTime;
{{1}}
毫无疑问,毫秒或其他事情(* 1000或* 100等)
答案 0 :(得分:1)
您的随机时间生成器为您提供1到100秒之间的值,并且仅在整秒内,因为* 1000
在随机时间舍入后发生。你可能想要:
var millisecondsToPress = Math.floor(10000 * Math.random());
如果您只关心错误的幅度,请使用Math.abs()
result = Math.abs(secondsPressed - this.millisecondsToPress) / 1000.0
将分区转换回秒。
要获取当前时间的数值(以毫秒为单位),您可以使用+new Date()
在较旧的浏览器上,或Date.now()
在较新的浏览器上(后者更有效,因为它不实例化对象)。