为本地存储添加高分

Adding a high score to local storage

本文关键字:添加 存储      更新时间:2023-09-26

我想为我的游戏增加一个高分。现在我有这个:

var score = 0;
var highscore = 0;

分数变量是有效的,但每当我得到类似的分数,总共60分时,它就会说,当使用console.log(highscore)检查时,高分仍然为零。

我有这个存储高分:

if (score > localStorage.getItem("highscore")) {
  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);
}

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

您需要使用从localStorage检索值

highscore = +localStorage.getItem("highscore")

或一些等效代码。localStorage中的项不跟踪具有相同名称的全局变量。

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

在比较之前转换为int。其字符串

我刚刚在中查看了您的代码http://jsfiddle.net/unb8yLj3/我找不到你在哪一部分增加了分数,所以当这部分代码运行分数为0时localStorage.getItem("highscore")为10,因此它不设置highscore。

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

有没有另一个js文件可以提高分数?