최종 프로젝트를위한 간단한 반응 시간 게임을 만들고 있습니다. 우리는 게임에서 기능을 수행하는 데 자바 스크립트를 사용하고 있습니다. 대부분의 코드는 정상적으로 작동하지만, 조건문을 사용하면 문제가 생깁니다. 다음은 코드조건문이 변수 값을 인식하지 못합니다.
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