Layer の Init 関数のさまざまな位置にあるオブジェクトのプロパティを抽出するために CCTMXTiledMap を使用しています。これらの位置を別の配列に保存し、TileMap はもう必要ありません。
コードは次のとおりです。
-(void) init{
...
CCTMXTiledMap *tileMap = [CCTMXTiledMap tiledMapWithTMXFile:@"TileMap2.tmx"];
CCTMXLayer *tmxLayer= [tileMap layerNamed:@"Layer1"];
for(int i=0;i<9999;i++)
{
for(int j=0;j<20;j++)
{
int gid = [tmxLayer tileGIDAt:ccp(i,j)];
properties = [tileMap propertiesForGID:gid];
_obstacles[m].type = CUBE_; m++;
}
}
...
}
Init メソッドの TileMap がリリースされた後。
問題:タイルマップが非常に大きい (9999x20) ため、大量のメモリが必要です。したがって、for ループが実行されている間、ピーク メモリは 18MB まで増加します。
異なる位置でプロパティを抽出できる他の方法はありますか?