-1
に未定義の「NaNの」プロパティを読み取ることができません。私は、プレーヤーの位置に基づいてタイルを取得しようとしていますので、私は、コードのこのセクションでgetTile機能で変数を使用する必要があります。キャッチされない例外TypeError:私のgetTile機能
var level = {
levelCols: mapArray[mapID].levelCols,
levelRows: mapArray[mapID].levelRows,
tileSize: mapArray[mapID].tileSize,
tiles: mapArray[mapID].tiles,
getTile: function(col, row) {
return this.tiles[row][col];
}
};
しかし、ときに私は、関数に次の値を置く:
for (var c = 0; c < vWidth; c++) {
for (var r = 0; r < vHeight; r++) {
var viewX = vX + c;
var viewY = vY + r;
var drawTile = level.getTile(viewX, viewY);
context.drawImage(tileGraphics[drawTile], viewX * level.tileSize, viewY * level.tileSize); //drawImage(image,x,y)
}
}
は私がキャッチされない例外TypeErrorを得る:未定義のエラーの「NaNの」プロパティを読み取ることができません。 私はvXとvYの変数をグローバルに定義しており、適切な値を持っていますが、なぜ私にエラーが出るのか分かりません。
それは、コードの一部の行は、 '[NaNの]' undefinedに評価されることを意味、何行がエラーにポイントしていますか?あなたは、各変数、オブジェクトの特性をその行からログに記録し、それらがあなたが思うものであることを確認しましたか? –
エラーは次のように指示します。this.tiles [row] [col];を返します。 これらの値は、コードの2番目の部分のforループ内で値を定義した場合にのみ機能します。しかし、私はそれらを他の場所で編集する必要があります。 返されるthis.tiles [row] [col];指定された入力のタイル値を返します。つまりthis.tiles [4] [2]を返します。 2列目の4行目にタイルが表示されます。 –
'this 'なしで試してください。 – Ciprianis