首页 > 解决方案 > 页面刷新时如何保持变量的值

问题描述

我目前正在做一个学校项目,我必须重新制作一个“乒乓”类型的游戏。我刚刚开始编码,但到目前为止一切都很顺利。但是,我被这个得分问题困住了。我基本上想在刷新页面时保留变量的值。我的一些代码是法语的,因此是法语单词。“点”基本上是分数(两个球员所以两个不同的分数)。“Fin”是球员得分的时候。另外,尽量不要评判我的代码,这是我要做的第一件事:P。

由于我是编码界的菜鸟,所以我尝试了多种方法来在页面刷新时保持变量的值。我已经尝试过 cookie 和本地存储。

    var point1=0

    var point2=0

    if(balle.x+balle.w>=canvas.width){
    gameOver=true
    player1=true
    point1++
    }

if(balle.x-balle.w<=0){
    gameOver=true
    player2=true
    point2++
    }

    function fin1(){
        c.font="100px Impact"
        c.drawImage(sas,0,0)
        c.fillText("Sasuke scores!",200,100)
        }   

    function fin2(){
        c.font="100px Impact"
        c.drawImage(ita,200,0)
        c.fillText("Itachi scores!",200,100)
            }   


    function restart(){
            if(gameOver==true){
            setTimeout("window.location.reload(false)",2000);}
            }

我的重启功能有效,但它只是在每次页面重新加载时重置“point1”和“point2”变量的值。

标签: javascripthtml

解决方案


啊,我看到这里发生了什么,至少我可以通过您的查询理解的是:您正在将数据设置到本地存储,但在重置时文件再次运行并将值和设置point1point20。基本上您没有从那里获取该项目本地存储。那么你问的解决方案是什么:编写一个 If 条件,如果数据存在于本地存储中,则使用它,如果没有,则初始化为 0类似这样的东西。

var point1 = localStorage.getItem('point1') ? localStorage.getItem('point1') : 0;
var point2 = localStorage.getItem('point2') ? localStorage.getItem('point2') : 0;

您可以从以下位置获得有关 localStorage 的更多信息:

注意:我正在考虑您将数据(point1 和 point2)存储在 localStorage


推荐阅读