@dsc1025 写道:
最近在测做一个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),而且有些菱形的坐标也不对
帖子: 1
参与者: 1