2013-02-09 91 views
0

我正在製作一款遊戲,並且我有一個基於時間的簡單點系統,其中日期存儲在一個名爲start的變量中(當我有幾個級別時),然後當級別已結束,它將另一個日期存儲在名爲stop的變量中。然後,經過的時間在名爲elapsed的變量中計算。最後,這些點顯示在名爲points的最終變量中。起始值是300000,每毫秒減少,5分鐘後達到零(這是一個短暫的級別)。我唯一的問題是,一旦完成關卡並顯示點數,積分就會不斷下降。我以前遇到過類似的問題,但是我總是會找到一個解決方法,因爲這個值通常很小。相關的代碼如下:
start = new Date().getTime();
stop = new Date().getTime();
elapsed = stop - start;
points = 300000 - elapsed;

所有變量都是在全局之前聲明的。在某種程度上,這是預期的,因爲points變量每秒更新1000次。那麼,有沒有辦法阻止它減少?提前致謝。在畫布中減少停止變量

回答

0

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

你應該使用window前綴使用globalvarwindow.points

start = new Date().getTime(); 
stop = new Date().getTime(); 
var elapsed = stop - start; 
if(elapsed < 300000) 
    points = 300000 - elapsed;