나는 html5와 javascript를 사용하여 게임을 만들고 있습니다. 이 파일은 "우주 침략자"의 한 버전입니다. 레이저 빔이 적과 접촉하는지 확인하는 기능이 있습니다. 레이저 빔이 생성 될 때 그러나, 다음과 같은 오류가 발생한다 :Javascript가 "Uncaught TypeError :이 속성이 정의 된 경우 정의되지 않은 속성을 읽을 수 없습니다"를 생성하는 이유는 무엇입니까?
index.html:94 Uncaught TypeError: Cannot read property 'getTopY' of
undefined at laserCollision (index.html:94)
laserCollision() 함수 : https://ruben-krueger.github.io/Interstellar-Invaders/
그리고 GitHub의 :
function laserCollision() {
for(var i = enemyArray.length - 1; i >= 0; i--) {
for(var j = playerLaserBeamsArray.length-1; j >= 0; j++) {
// make sure not to access an object which does not exist.
if(playerLaserBeamsArray[j] == 'undefined') break;
// check if laser beam is at correct y coordinate
if(playerLaserBeamsArray[j].getTopY() > enemyArray[i].getY() && playerLaserBeamsArray[j].getBottomY() < enemyArray[i].getY()) {
// check if laser beam is between the enemy's furthermost left and right x-coordinates
if(playerLaserBeamsArray[j].getLeftX() <= enemyArray[i].getLeftX() && playerLaserBeamsArray[j].getRightX() <= enemyArray[i].getRightX()){
score ++;
enemyArray[i].splice(i, 1);
}
}
}
}
게임은에서 재생할 수있는 레포 주소 : https://github.com/Ruben-Krueger/Interstellar-Invaders
** 문자열 상수 **' 'undefined ''는'undefined' 값과 다릅니다. – Pointy