cocos2d - 地图

使用 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) {
				//
			}
		}


你可能感兴趣的:(cocos2d - 地图)