我正在 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")
}
}
我想检查当玩家在导出时 key 是否已被拿起。但是,我无法这样做。我尝试了很多很多事情,这是困扰我的最后一个障碍。我想全局更改 hasKey = true ,以便当 dataAtScout = "exit"时它会确认变量已更改为 true。那么,在我的 dataAtScout = "key"中,如何将 hasKey 变量全局更改为 true,以便稍后由另一个 if 语句确认?
我看到另一篇文章有类似的问题,结论是reset();需要被调用。我尝试过,但没有成功。
非常感谢任何和所有帮助!
最佳答案
您声明:“在 PS.keyDown = 函数中我正在运行此”,然后:var hasKey;
,从中我了解到您显示的代码是正文或部分上述函数体的一部分,因此您的 hasKey
变量是该函数的本地变量。
删除var hasKey;
(从函数内部)语句以使用全局变量。
关于javascript - 如何更改 if 语句中的全局变量,然后在另一个 if 语句中重用该更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28707907/