我正在制作一个游戏,我有一个基于时间的简单点系统,当水平开始时,日期存储在一个名为start
的变量中(我有几个级别),然后当级别有结束它将另一个日期存储在名为stop
的变量中。然后在名为elapsed
的变量中计算经过的时间。最后,这些点显示在名为points
的最终变量中。起始值为300000,每毫秒减少,5分钟后达到零(这是一个短暂的水平)。我唯一的问题是,一旦水平结束并显示点数,积分就会继续下降。我之前遇到过类似的问题,但我似乎总是找到一种解决方法,因为价值通常很小。相关代码如下:
start = new Date().getTime();
stop = new Date().getTime();
elapsed = stop - start;
points = 300000 - elapsed;
所有变量都在全局之前声明。在某种程度上,它是预期的,因为points
变量每秒更新1000次。那么,有没有办法阻止它减少?提前谢谢。
答案 0 :(得分:0)
在分配新职位之前,请检查该值。
您应该使用global
前缀:var
window
window.points
start = new Date().getTime();
stop = new Date().getTime();
var elapsed = stop - start;
if(elapsed < 300000)
points = 300000 - elapsed;