(初学者编码器。入门级)HTML点击游戏上的保存/加载功能不起作用
Posted
技术标签:
【中文标题】(初学者编码器。入门级)HTML点击游戏上的保存/加载功能不起作用【英文标题】:(Beginner Coder. Entry Entry Level) Save/Load function on HTML clicker game not working 【发布时间】: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。 【参考方案1】:getItem()
只能得到一个值。
如果要获取所有值的json对象,只需使用localStorage
即可。
一个Storage对象,可以用来访问当前源的本地存储空间。
var savedGame = localStorage;
参考:
getItem() localStorage【讨论】:
以上是关于(初学者编码器。入门级)HTML点击游戏上的保存/加载功能不起作用的主要内容,如果未能解决你的问题,请参考以下文章
《Python编程初学者指南》PDF高清完整版网盘下载_Python快速编程入门教程
unity3d游戏开发和unity入门到精通哪本书适合初学者