我是HTML和Javascript的新手,为了学习它,我正在制作增量游戏(类似于CookieClicker或CivClicker)。
我试图保存并加载进度,我可以保存得很好,但是当我加载它时,它会正确加载所有变量,但是当我点击按钮来增加变量时,它会一些奇怪的东西,很难解释,我会发布代码,以便你可以再看一下。
function loadProgress() {
if (typeof (Storage) !== "undefined") {
progress = localStorage.progress;
speed = localStorage.speed;
quality = localStorage.quality;
isDone = localStorage.isDone;
totalMoney = localStorage.totalMoney;
speedCost = localStorage.speedCost;
gamesSold = localStorage.gamesSold;
autoclick = localStorage.autoclick;
autoclickCost = localStorage.autoclickCost;
currentBugs = localStorage.currentBugs;
refreshDisplay();
} else {
console.log("LocalStore not appliable.")
}
}
按'设计'直到你达到100%,然后点击“出售你的游戏”#39;然后按“保存进度”,然后按“加载进度”并再次单击“设计”并再次出售游戏,您将看到数字增加非常奇怪,并且根本没有预期。
' ShowMeTheMoney'将在控制台中显示变量,以便您可以验证变量是否已正确存储。
我不知道为什么会发生这种情况,所以如果有人可以帮助那就太棒了。
答案 0 :(得分:1)
本地存储即Web存储,将值存储为字符串,因此在检索值时需要转换/转换为数字,否则变量将保留为字符串,您将看到连接而不是递增的值。例如,1 + 1
变为11
而不是2
。
转换为数字的方法有很多种,一种方法是+
方法:
progress = +localStorage.progress;
speed = +localStorage.speed;
quality = +localStorage.quality;