我正在使用 CCTMXTiledMap 提取层的 Init 函数中不同位置的对象的属性。我将这些位置存储在一个单独的数组中,不再需要 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 被释放之后。
问题:因为 Tilemap 非常大(9999x20),它需要很多内存。因此,在 for 循环运行时,峰值内存高达 18MB。
有没有其他方法可以提取不同位置的属性?