如何更改if语句中的全局变量,然后在另一个if语句中重用该变更?

时间:2015-02-24 22:49:11

标签: javascript variables global

我在Perlenspiel引擎中运行game.js文件。我有一个名为

的全局变量
var hasKey;

在PS.keyDown =功能中,我正在运行

var hasKey;
    if(dataAtScout == "key"){
        hasKey = true;
        PS.audioPlay("fx_jump8");
        PS.debug("Scout has picked up an odd key")
    }

    if(dataAtScout == "exit"){
        Scout.x = oldSX;
        Scout.y = oldSY;
        PS.debug("\nTheres a computer at the door.")

        if(hasKey == true){
            PS.debug("\nThe door creaks open as Scout runs into a cornfield.")

        }
        else{
            PS.debug("\nError... Error... Error... Error")
        }

    }   

我想检查玩家在出口处是否已经拿起钥匙。但是,我无法这样做。我尝试了很多很多东西,这是困扰我的最后一道障碍。我想全局更改hasKey = true,以便在dataAtScout =&#34时退出"它将确认变量已更改为true。因此,在我的dataAtScout =" key"中,如何将hasKey变量全局更改为true,稍后由另一个if语句确认?

我看到另一个帖子有类似的问题,结论是重置();需要被召唤。我试过了,但它没有用。

非常感谢任何和所有帮助!

1 个答案:

答案 0 :(得分:1)

你说:"在PS.keyDown =函数中,我运行了这个",然后:var hasKey;,我从中了解到你所展示的代码是正文或上述函数体的一部分,因此您的hasKey变量是此函数的本地变量。

删除var hasKey;(从函数内部)语句以使用全局变量。

PS。免责声明:你永远不应该使用全局变量。