2016-05-19 27 views
-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の変数をグローバルに定義しており、適切な値を持っていますが、なぜ私にエラーが出るのか分かりません。

+0

それは、コードの一部の行は、 '[NaNの]' undefinedに評価されることを意味、何行がエラーにポイントしていますか?あなたは、各変数、オブジェクトの特性をその行からログに記録し、それらがあなたが思うものであることを確認しましたか? –

+0

エラーは次のように指示します。this.tiles [row] [col];を返します。 これらの値は、コードの2番目の部分のforループ内で値を定義した場合にのみ機能します。しかし、私はそれらを他の場所で編集する必要があります。 返されるthis.tiles [row] [col];指定された入力のタイル値を返します。つまりthis.tiles [4] [2]を返します。 2列目の4行目にタイルが表示されます。 –

+0

'this 'なしで試してください。 – Ciprianis

答えて

0

私は愚かされていたとの事をめちゃくちゃたテストからのコードのビットに残っていました。私は私の問題を解決しました。

関連する問題