我想在游戏中添加高分。现在我有这个:
var score = 0;
var highscore = 0;
得分变量有效,但每当我得到点数总共60分时,它表示使用console.log(highscore)
检查时得分仍为零。
我有这个来存储高分:
if (score > localStorage.getItem("highscore")) {
localStorage.setItem("highscore", score);
}
这不能正常工作,但也不会出现任何错误。
答案 0 :(得分:1)
除了parseInt
之外,您还需要首先在localStorage
设置初始值,因为如果未设置,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);
}
答案 1 :(得分:1)
试试这个:
var score = 0;
var highscore = localStorage.getItem("highscore");
if(highscore !== null){
if (score > highscore) {
localStorage.setItem("highscore", score);
}
}
else{
localStorage.setItem("highscore", score);
}
答案 2 :(得分:0)
您需要使用
从localStorage检索值highscore = +localStorage.getItem("highscore")
或一些等效代码。 localStorage
中的项目不会跟踪具有相同名称的全局变量。
答案 3 :(得分:0)
我刚刚在http://jsfiddle.net/unb8yLj3/审核了您的代码,但我无法找到您在哪个部分增加分数,因此当这部分代码运行得分为0且 localStorage.getItem(“highscore”)是10因此它没有设置高分。
if (score > localStorage.getItem("highscore")) {
localStorage.setItem("highscore", score);
}
}
是否有其他js文件可以提高分数?
答案 4 :(得分:-1)
if (score > parseInt(localStorage.getItem('highscore'), 10)) {
localStorage.setItem('highscore', score);
}
在比较之前转换为int。它的字符串