私はキャンバスにタイルのグリッドを使ってランダムマップジェネレータを構築しようとしています。各タイルtiles[i]
については、tiles[i-1]
を使用する前にタイルのプロパティをチェックします。これは、 "普通の"オブジェクト(方法1)を使用して動作するように見えますが、 "2d"オブジェクト(方法2)ではなく、tiles[i-1].tileID
がtiles[i].tileID
と表示されます。私は標準オブジェクト(javascript)のようにタイル[i-1]を介して "2d"オブジェクトのプロパティにアクセスできません
for (i=0; i<40; i++) {
tiles[i] = { tileID: i}; // METHOD 1
tiles[i]=c.getContext("2d") // METHOD 2
tiles[i].tileID = i // METHOD 2
if(i>0) {
console.log("my tile ID is", tiles[i].tileID,
". The tile ID of the tile before me is", tiles[i-1].tileID)
}
}
方法1を使用して(と方法2の2行を削除)、あなたが期待するものコンソール版画:
私のタイルIDが12です。私の前にタイルのタイルIDは11
ではなく、方法2のために:
私のタイルIDは12です。私の前のタイルのタイルIDは12
私は回避策を見る前にこれを行う理由がありますか?乾杯!