tileMap坐标转换为openGL坐标问题

tileMap转换为openGL坐标,正常的代码

Vec2 tileCoordForPosition(const Vec2& position)
{
    Size mapSize = tiledMap->getMapSize(); 
    Size tileSize = tiledMap->getTileSize();
    int x = position.x / tileSize.width;
    int y = (mapSize.height*tileSize.height - position.y) / tileSize.height;
    return Vec2(x, y);
}

但是在考虑scale放大之后,我在这里面各处都乘了tileMap->getScale(),结果x,y越大,误差越大,请教一下应该怎么处理scale问题呢?

顶顶顶

上面代码是我在网上找的

我写的是

    float x = pos.x / tileMap->getTileSize().width/tileMap->getScale(); 									
    float y = ((tileMap->getMapSize().height * tileMap->getTileSize().height*tileMap->getScale()) - pos.y) /
    tileMap->getTileSize().height/tileMap->getScale() ; 		
    return Point(x, y);

最初只有1的误差,后面就是是几和十几了,救命啊