gpt4 book ai didi

javascript - 条件语句无法识别变量值

转载 作者:行者123 更新时间:2023-11-28 03:54:36 25 4
gpt4 key购买 nike

我正在为最终项目制作一个简单的 react 时间游戏。我们使用 javascript 来支持游戏中的功能,我的大部分代码都处于工作状态,但我有一个 if 条件语句给我带来了麻烦。这是代码

function fireTime() {
setTimeout(ShotsFired, time);

function ShotsFired() {
fire.style.visibility = "visible";
createdTime = Date.now();
console.log(createdTime);
EnemyTime = Math.floor((Math.random() * 1000) + 400);
setTimeout(EnemyShoot, EnemyTime)

function EnemyShoot() {
console.log(EnemyTime);
gameplay();
}

function gameplay() {
reactionTime = -(createdTime - clickedTime);
var EnemyTime;
console.log(reactionTime);
if (reactionTime < EnemyTime) {
alert("Wow you beat him! Congrats!");
fire.style.visibility = "hidden";
clickedTime = 0;
createdTime = 0;
reactionTime = 0;
scavnumber++;
BGnumber++;
DesertBG.src = "images/Desert" + BGnumber + ".png";
scav.src = "images/scav" + scavnumber + ".png";
fireTime();
} else {
EndScreen.style.visibility = "visible";
}
}

这不是完整的代码,只是将游戏推进到下一个级别的函数。

无论出于何种原因,即使reactionTime小于EnemyTime,EndScreen也会变得可见。

谁知道这可能是什么原因造成的?

最佳答案

对你的敌人时间数学使用浮点,即 400.0 ,否则你会得到 0/1 秒并且不使用毫秒,并且它正在使用数学整数。具体来说,将您的敌人时间转换为 float ,目前,如果您打印它,它可能是一个整数。这是一个主要的 js 编码细节,如果您认为 101/50 = 2.05,那么您将来将花费数小时的时间寻找错误,但它不等于 2,因此除以 50.0,并且与所有秒/毫秒任务相同。

使用 EnemyTime 作为所有脚本的全局变量,目前,代码中所有脚本中都有一个名为 EnemyTime 的不同函数,后者没有任何值(value)。

使用 print 来查看 else 条件何时起作用,并在打印中指定一个 print 和敌人时间值。

这就是您应该通过打印令人困惑的变量来解决问题的方法。

关于javascript - 条件语句无法识别变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47667856/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com