내 레이어의 Init 함수에서 다른 위치에있는 오브젝트의 속성을 추출하는 데 CCTMXTiledMap을 사용하고 있습니다. 이 위치를 별도의 배열에 저장하고 더 이상 TileMap이 필요하지 않습니다.Cocos2d : 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++;
}
}
...
}
초기화 방법 TileMap이 해제됩니다 후 : 여기
는 코드입니다.문제점 : 타일 맵이 매우 크기 때문에 (9999x20) 많은 메모리가 필요합니다. 따라서 최대 메모리는 for 루프가 실행되는 동안 18MB로 높아집니다.
다른 위치에서 속성을 추출 할 수있는 다른 방법이 있습니까?
감사합니다. – user739711
해결되었습니다. 나는 3 개의 작은 타일 맵으로 긴 타일 맵을 깨고 있습니다. – user739711