0

我正在制作一个游戏,我有一个基于时间的简单积分系统,其中日期存储在一个称为start关卡开始时调用的变量中(我有几个关卡),然后当关卡结束时,另一个日期存储在一个名为 的变量stop。然后在一个名为 的变量中计算经过的时间elapsed。最后,这些点显示在名为 的最终变量中points。起始值为 300000,每毫秒减少一次,5 分钟后达到零(这是一个短水平)。我唯一的问题是,一旦关卡完成并显示积分,积分就会不断减少。我以前也遇到过类似的问题,但我似乎总是找到一种解决方法,因为价值通常很小。相关代码如下:
start = new Date().getTime();
stop = new Date().getTime();
elapsed = stop - start;
points = 300000 - elapsed;

所有变量都是在全局之前声明的。在某种程度上,这是意料之中的,因为该points变量每秒更新 1000 次。那么,有什么办法可以阻止它减少呢?提前致谢。

4

1 回答 1

0

只需在分配新位置之前检查值。

您应该使用global varusingwindow前缀:window.points

start = new Date().getTime();
stop = new Date().getTime();
var elapsed = stop - start;
if(elapsed < 300000)
    points = 300000 - elapsed;
于 2013-02-09T20:21:42.087 回答