求教--tiledMap 坐标转换问题

最近在测做一个45度交错tiledMap的地图

监听鼠标事件

Layer->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listenerMouse, Layer);

方法

void Map::onMouseMove(EventMouse* event){

属性里只有当前场景坐标
我想得到 tile 坐标怎么做

这是网上找得方法

Vec2 point = Map::staggeredCoordForPosition(event->getLocationInView());
CCLOG("%f, %f", point.x, point.y);

};

这是网上找的方法,貌似不对

Vec2 Map::staggeredCoordForPosition(cocos2d::Vec2 position) { int y = layerSize.height - 2 - ((2 * (int)position.y) / (int)mapTileSize.height); float x = position.x / mapTileSize.width - (y % 2) / 2.0f; return Vec2((int)x, (int)y); }


而用方法转换出来的坐标(0,13),而tiled内是(0,14),而且有些菱形的坐标也不对

帮顶一下~~
不知道解决了没有~~