我在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语句确认?
我看到另一个帖子有类似的问题,结论是重置();需要被召唤。我试过了,但它没有用。
非常感谢任何和所有帮助!
答案 0 :(得分:1)
你说:"在PS.keyDown =函数中,我运行了这个",然后:var hasKey;
,我从中了解到你所展示的代码是正文或上述函数体的一部分,因此您的hasKey
变量是此函数的本地变量。
删除var hasKey;
(从函数内部)语句以使用全局变量。
PS。免责声明:你永远不应该使用全局变量。