图层
CCTMXLayer* layer = map->layerNamed("grass");
GIDS
瓦片的GID是一个全局标识量,他的范围从正整数1开始,到瓦片地图中tile的总量。
GID与spiriteBatchNode中的一个素材绑定,因此,propertiesForGID方法获取到的是一系列tile节点,因为一个素材可能被复用在多个坐标
int tilegid = layer->tileGIDAt(ccp(col,row));
CCDictionary *tiledic = map->propertiesForGID(tilegid);
CCString *mvalue = (CCString *)tiledic->objectForKey("conflict")
mapSize 和tileSize
tileSize
瓦片地图的colums_length , row_length
m_tileMap->getTileSize()
mapSize
瓦片地图的column * row
m_tileMap->getMapSize()
坐标系转换的问题
CCPoint HelloWorld::covertPointToTiledPoint(cocos2d::CCPoint p){
int x = p.x / m_tileMap->getTileSize().width;
int y =((m_tileMap->getMapSize().height * m_tileMap->getTileSize().height) - p.y) / m_tileMap->getTileSize().height;
return ccp(x, y);
}
titleMap 整张图左上角是(0,0)
因为算出来的都是一个小瓦片“左上角”的坐标,所以要修正一下CCPoint HelloWorld::covertTiledPointToPoint(cocos2d::CCPoint p)
{
int offsetX = m_tileMap->getTileSize().width/2;
int offsetY = m_tileMap->getTileSize().height/2;
CCTMXLayer* layer = m_tileMap->layerNamed("Layer1");
CCPoint point = layer->positionAt(p);
return ccp(point.x+offsetX,point.y+offsetY);
}