2015-03-31 51 views
0

我想給我的遊戲添加高分。現在,我有這樣的:給本地存儲添加高分

var score = 0; 
var highscore = 0; 

比分變量的作品,但每當我得到這樣的點,以便共60分,它說用console.log(highscore)檢查時,它的高比分還是零。

我有這個存儲最高得分:

if (score > localStorage.getItem("highscore")) { 
    localStorage.setItem("highscore", score); 
} 

這並不正常工作,但它也沒有給出任何錯誤。

+0

只是一個想法,以你的引擎收錄,您可能希望你的變量轉換爲對象,將有很大的幫助:) – 2015-03-31 13:52:39

回答

-1
if (score > parseInt(localStorage.getItem('highscore'), 10)) { 
    localStorage.setItem('highscore', score); 
} 

比較前轉換爲int。它的字符串

+0

仍然不起作用unfortanalty你可以看我在這裏的洞代碼HTTP: //pastebin.com/sgZS8tzz – superman123 2015-03-31 13:50:00

+0

你可以分享jsfiddle或plnkr鏈接。我不能訪問pastebin – Vikash 2015-03-31 13:53:19

+0

它是一個洞的遊戲這是一個腳本,但是我可以推它在jsfiddle 在這裏你去 http://jsfiddle.net/unb8yLj3/ – superman123 2015-03-31 13:56:51

0

您需要與

highscore = +localStorage.getItem("highscore") 

或一些類似代碼檢索的localStorage值。 localStorage中的項目不會跟蹤具有相同名稱的全局變量。

0

除了parseInt,你需要設置在localStorage第一初始化值,因爲如果沒有設置好的

var score = 0; 
var highscore = 0; 
localStorage.setItem("highscore",0); 

localStorage.getItem("highscore",10)不返回10默認值因爲當你檢查

if (score > parseInt(localStorage.getItem("highscore"))) { 
    localStorage.setItem("highscore", score); 
} 

如果項目尚未設置,localStorage.getItem("highscore")將返回null。或者你也可以這樣做:

var storagedHighScore = localStorage.getItem("highscore"); 
if (storagedHighScore || score > parseInt(storagedHighScore)) { 
    localStorage.setItem("highscore", score); 
} 
0

我剛剛檢查了您的代碼http://jsfiddle.net/unb8yLj3/,我不能在你增加哪一部分的得分,所以當代碼運行得分這部分是0和 localStorage.getItem找到(」高分「)是10,因此它沒有設置高分。

if (score > localStorage.getItem("highscore")) { 
       localStorage.setItem("highscore", score); 

      } 

    } 

是否還有另一個js文件確實提高了分數?

1

試試這個:

var score = 0; 
var highscore = localStorage.getItem("highscore"); 

if(highscore !== null){ 
    if (score > highscore) { 
     localStorage.setItem("highscore", score);  
    } 
} 
else{ 
    localStorage.setItem("highscore", score); 
}