好的,所以我目前正在制作基于PBBG的游戏。但是,我在单击按钮和if语句中的两个条件时遇到了麻烦。如果有可能,我实际上并不乐观,我搜寻了我能想到的所有地方,但没有任何东西给我明确的答案,以使它生效。
基本上,我要达到的目标是,当玩家按下“攻击”按钮时,玩家会获得击败该怪物的经验值和金钱。然后,在该功能运行之后,我将延迟时间设置为6秒,直到6秒过去之后,他们才能再次按下按钮进行攻击。
我确实获得了该功能,并在他们赢得战斗时在onClick上工作,游戏会向他们授予击杀经验和金钱。一切都很好,我确保在开始添加延时功能和所有功能之前,所有功能都可以正常工作。
这是该函数的代码,但要尝试添加时间:Code (目前还不允许我嵌入图片,因此现在必须做一个链接),而我只使用了一个HTML按钮,其onClick值设置为SingleAttack()。出现问题的代码似乎在此部分中。
if (attackReady) || (currentExp >= NeededExp) {...}
我在这里所做的是我持有一个布尔型,名为AttackReady,并将其设置为“ true”。当玩家按下“攻击”按钮时,它会将“ true”值更改为“ false”,然后添加setTimeout()和以毫秒为单位的周期来进行延迟。然后,将attackReady设置为true,并在重新调用该函数之前设置了6秒的延迟。
您会发现我的函数中有一个if和else if。 if代码仅在玩家当前的经验值大于或等于所需的经验值时运行。我认为我的问题来自if语句中有两个条件。我不完全确定是否有可能,我到处都在寻找答案,而对于javascript则一无所获。我知道C#允许这样做,javascript是否允许,如果允许,我做对了还是做错了?
单击“攻击”按钮并调用该函数时,它什么也不做。有见识吗?
答案 0 :(得分:0)
正如@Thomas指出的那样,整个测试也需要用大括号括起来。您当前有:
-
您想要的是:
if (attackReady) || (currentExp >= NeededExp) {...}
或更简单地说:
if ( (attackReady) || (currentExp >= NeededExp) ) {...}
还有一件事:
根据您的描述,可能是希望两个测试都正确才能执行该代码块的情况。如果是这种情况,则您要对if (attackReady || currentExp >= NeededExp) {...}
使用 AND 而不是&&
OR 测试。如果左侧或右侧为true,则||
为true。