titledMap 基础

图层


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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值