私は最終プロジェクトのために簡単な反応時間ゲームを作っています。 私はJavaScriptを使用してゲームの機能を強化しています。私のコードの大半は正常に動作していますが、私には条件文があります。 ここではこれが全体のコード、次のレベルにゲームを進める必要があるだけの機能ではありませんコード条件文で変数値が認識されない
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が表示されます。
誰でもこれを引き起こす可能性がありますか?
var EnemyTime; <<< undefinedは0に変換されます。行を削除し、関数の外側で正の値に初期化します。 – mplungjan
@Satpalは初期化されません。 – mplungjan
@mplungjan、私はOPがグローバル変数を定義し、スコープの問題が私に見えて、私はもっと多くの情報/コードを共有するように彼を尋問しています – Satpal