私はhtml5とjavascriptを使ってゲームを作っています。ファイルは「空間侵略者」の一種です。私はレーザービームが敵と接触するかどうかをチェックする機能を持っています。レーザビームが作成されるときただし、次のエラーが生成されます。このプロパティが定義されていると、Javascriptで「Uncaught TypeError:未定義のプロパティを読み取れません」というメッセージが表示されるのはなぜですか?
index.html:94 Uncaught TypeError: Cannot read property 'getTopY' of
undefined at laserCollision (index.html:94)
laserCollision()関数:
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://ruben-krueger.github.io/Interstellar-Invaders/
とgithubのレポは: https://github.com/Ruben-Krueger/Interstellar-Invaders
**文字列定数** ''undefined''は値' undefined'と同じではありません。 – Pointy