titledMap 基础

来源:互联网 发布:mysql导入中文数据乱码 编辑:程序博客网 时间:2024/06/10 09:51

图层


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);
}

0 0
原创粉丝点击