簡體   English   中英

在本地存儲中添加高分

[英]Adding a high score to local storage

我想給我的游戲增加一個高分。 現在我有這個:

var score = 0;
var highscore = 0;

score變量有效,但是每當我獲得積分時,總分為60分,它表示使用console.log(highscore)檢查時,高分仍為零。

我有這個來存儲高分:

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

這不能正常工作,但是也不會出現任何錯誤。

除了parseInt ,您還需要首先在localStorage上設置init值,因為如果未設置localStorage.getItem("highscore",10)不會返回10作為默認值。

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

因為當你檢查

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);
}

嘗試這個:

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

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

您需要使用以下命令從localStorage檢索值

highscore = +localStorage.getItem("highscore")

或一些等效的代碼。 localStorage項目不會跟蹤具有相同名稱的全局變量。

我剛剛在http://jsfiddle.net/unb8yLj3/中查看了您的代碼,但找不到增加分數的部分,所以當這部分代碼運行分數為0且localStorage.getItem(“ highscore”)為10時因此它沒有設置高分。

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

            }

  }

是否有另一個js文件可以提高得分?

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

比較之前將其轉換為int。 它的字符串

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM