使用 TileMapEdit 编辑地图,然后保存为 tmx 文件,然后把tmx文件和png原图放到Resource目录下。
cocos2d中使用 CCTMXTiledMap 来读取tmx文件:
CCTMXTiledMap *map = [CCTMXTiledMap tiledMapWithTMXFile:@"test.tmx"];
[self addChild:map];tmx是XML格式的文件。
使用 CCTMXLayer 获得视图层:
CCTMXLayer *eventLayer = [map layerNamed:@"GameEventLayer"];然后你可以使用瓦块在地图中的坐标获得GID(全局标示符):
int gid = [eventLayer tileGIDAt:ccp(4,1)];如果GID==0表示在该位置没有瓦块,你将会透过当前层看到下层的地图,如果GID!=0你可以获得该瓦块的属性:
if (gid != 0) { NSDictionary *dic = [map propertiesForGID:gid]; if (dic != nil) { // } }瓦块中的所有属性将会保存在dic字典中,属性是在TileMapEdit编辑器中编辑的。
通过 CCTMXObjectGroup 可以获得物体层:
CCTMXObjectGroup *objectLayer = [map objectGroupNamed:@"ObjectLayer"];//传递TileMapEdit中取的名字
通过以下代码,获得所有物体区域的属性:
int objectCount = [[objectLayer objects] count]; for (Byte i = 0; i < objectCount; i++) { NSDictionary *dic = [[objectLayer objects] objectAtIndex:i]; if (dic != nil) { // } }