【发布时间】:2022-01-17 09:58:34
【问题描述】:
初学者从论坛网站和 youtube 学习,请多多包涵。 (加上我很笨)
我正在制作一个愚蠢的点击游戏,只是为了看看我能不能做到(显然不能)。 我有一些带有 onclick 功能和乘数设置的按钮,一切正常。
直到保存/加载。
我遵循了我为保存功能找到的教程,通过 localStorage/cookies 保存/加载您的进度,它在刷新时保存了总“金钱”(分数),但我的“scorepersecond”和每次通过按钮升级都没有'不保存,即使我已经包含了他们的成本和名称值来告诉我要保存哪些变量。我正在使用带有 Live Server 扩展的 VS Code 进行测试(firefox)。
function loadGame() {
var savedGame = JSON.parse(localStorage.getItem("gameSave", "score", "scorepersecond", "cursors", "cursorcost", "lighters", "lightercost", "grinders", "grindercost", "devils", "devilcost", "trays", "traycost", "dealers", "dealercost"));
if (typeof savedGame.score !== "undefined") score = savedGame.score;
}
function saveGame() {
var gameSave = {
score: score,
scorepersecond: scorepersecond,
clickingPower: clickingPower,
cursors: cursors,
cursorcost: cursorcost,
lighters: lighters,
lightercost: lightercost,
grinders: grinders,
grindercost: grindercost,
devils: devils,
devilcost: devilcost,
trays: trays,
traycost: traycost,
dealers: dealers,
dealercost: dealercost,
};
localStorage.setItem("gameSave", JSON.stringify(gameSave));
document.getElementById("score").innerHTML = score;
document.getElementById("scorepersecond").innerHTML = scorepersecond;
document.getElementById("cursorcost").innerHTML = cursorcost;
document.getElementById("cursors").innerHTML = cursors;
document.getElementById("lightercost").innerHTML = lightercost;
document.getElementById("lighters").innerHTML = lighters;
document.getElementById("grindercost").innerHTML = grindercost;
document.getElementById("grinders").innerHTML = grinders;
document.getElementById("devilcost").innerHTML = devilcost;
document.getElementById("devils").innerHTML = devils;
document.getElementById("traycost").innerHTML = traycost;
document.getElementById("trays").innerHTML = trays;
document.getElementById("dealercost").innerHTML = dealercost;
document.getElementById("dealers").innerHTML = dealers;
}
window.onload = function() {
loadGame();
updatescorepersecond();
document.getElementById("score").innerHTML = score;
document.getElementById("cursorcost").innerHTML = cursorcost;
document.getElementById("cursors").innerHTML = cursors;
document.getElementById("lightercost").innerHTML = lightercost;
document.getElementById("lighters").innerHTML = lighters;
document.getElementById("grindercost").innerHTML = grindercost;
document.getElementById("grinders").innerHTML = grinders;
document.getElementById("devilcost").innerHTML = devilcost;
document.getElementById("devils").innerHTML = devils;
document.getElementById("traycost").innerHTML = traycost;
document.getElementById("trays").innerHTML = trays;
document.getElementById("dealercost").innerHTML = dealercost;
document.getElementById("dealers").innerHTML = dealers;
};
我已经尝试过了。
function loadGame() {
var savedGame = JSON.parse(localStorage.getItem("gameSave"));
if (typeof savedGame.score !== "undefined") score = savedGame.score;
}
function loadGame() {
var savedGame = JSON.parse(localStorage.getItem("gameSave"));
if (typeof savedGame.score !== "undefined") score = savedGame.score;
if (typeof savedGame.scorepersecond!== "undefined") scorepersecond = savedGame.scorepersecond;
}
连同我想保存的其他变量,以“(typeof”的形式也失败了。
不确定这个位是否真的意味着任何东西,但是如果我检查页面上的元素并访问本地存储,它会每 30 秒相应地更新一次并使用适当的值,但在页面刷新时它会噗的一声(除了总“钱”(分数)在页面顶部)。
不确定人们需要看到什么,或者我是否分享了足够多的内容,但如果有人可以在不成为 d-bag 的情况下提供帮助,那就太酷了 :)除了整个事情。如果您需要查看更多我的 poopy clicker 游戏,请提前感谢和 lmk。
【问题讨论】:
-
请修剪您的代码,以便更容易找到您的问题。请按照以下指南创建minimal reproducible example。
标签: javascript html save load