我对HTML和Javascript相当新,所以我试图将一个小型增量游戏作为练习。这是我尝试使用的代码来计算自动增益/秒,以及相应地调整选项卡何时不在焦点并且setInterval
停止运行。
var startTime = new Date();
var endTime = new Date();
var interval = 100;
window.setInterval(function(){
startTime.getTime();
var timeDiff = startTime - endTime;
do{
document.getElementById('woodAmount').innerHTML = Math.floor(user.wood += (user.WPS/10));
document.getElementById('oilAmount').innerHTML = Math.floor(user.oil += (user.OPS/10));
document.getElementById('goldAmount').innerHTML = Math.floor(user.gold += (user.GPS/10));
document.getElementById('coalAmount').innerHTML = Math.floor(user.coal += (user.CPS/10));
timeDiff -= interval;
}while (timeDiff >= interval);
endTime.getTime();
}, interval);
出于某种原因,此代码不会调整选项卡未聚焦的时间,但在聚焦时它会按预期工作。
正如您在此处所看到的,我将interval
设置为100毫秒,并将资源/秒(user.WPS
)除以10。
但是,当我将interval
设置为1秒(1000毫秒)并且不将资源/秒除以10时,它始终按预期工作,并适当调整标签未聚焦的时间
任何人都可以解释为什么它在使用全秒间隔时有效,但在使用100毫秒间隔时却不会?
答案 0 :(得分:3)
.getTime()
获取Date
对象在创建时或者最后一次在日期对象中设置的时间。它没有得到当前时间。
如果你想获得当前时间,我经常使用这个小功能:
function now() {
return new Date().getTime();
}
或者,如果您不需要IE8支持,则可以使用Date.now()
。
此外,getTime()
方法从数据对象中抽出时间并从该方法调用返回它。如果你想使用它,你必须在调用.getTime()
之后把它放在某处。