坐标转换
对格子地图的很多操作,尤其是对地图中特定格子的操作必须通过坐标转换完成。
世界坐标转地图格子坐标:
auto ev = EventListenerTouchOneByOne::create();
ev->onTouchBegan= [&](Touch* touch, Event*)
{
/* 获取层*/
TMXLayer* layer =map->getLayer("Layer0");
/* 获取触摸位置 */
Vec2 ptTouch = touch->getLocation();// ptTouch是世界坐标
Vec2 ptInMap =map->convertToNodeSpace(ptTouch); //将世界坐标转到节点坐标,但是是GL坐标
/* 计算格子位置 */
int x = ptInMap.x /map->getTileSize().width; //getTileSize