【问题标题】:(Beginner Coder. Entry Entry Level) Save/Load function on HTML clicker game not working(初学者编码器。入门级)HTML点击游戏上的保存/加载功能不起作用
【发布时间】: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。

【问题讨论】:

标签: javascript html save load


【解决方案1】:

getItem() 只能得到一个值。

如果要获取所有值的json对象,只需使用localStorage即可。

一个Storage对象,可以用来访问当前源的本地存储空间。

var savedGame = localStorage;

参考:

【讨论】:

    猜你喜欢
    • 2016-02-25
    • 2011-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-13
    • 2012-07-13
    • 2019-11-08
    相关资源
    最近更新 更多