瓦片地图,通过像素坐标返回瓦片坐标的函数

原创 2015年07月06日 17:45:06
//tiledmap是一个全局变量,要在.h文件中定义TMXTiledMap* tiledmap
tiledmap = TMXTiledMap::create("map.tmx");

 cocos2d::Vec2 HelloWorld::tiledCoordFromPosition(cocos2d::Vec2 position)
{
    int x = position.x/tiledmap->getTileSize().width;
    int y = (tiledmap->getTileSize().height*tiledmap->getMapSize().height-position.y)/tiledmap->getTileSize().height;
    return Vec2(x,y);
}
  • 函数放回类型cocos2d::Vec2,HelloWorld类名,tiledCoordFromPosition函数名,参数是cocos2d::Vec2类型
  • 该瓦片在地图中(原点在左上角)x轴坐标的像素position.x除以单个瓦片像素尺寸的宽tiledmap->getTileSize().width
  • 单个瓦片像素尺寸的高tiledmap->getTileSize().height乘以地图中高度的瓦片个数tiledmap->getMapSize().height即整个地图高的像素,减去该瓦片在地图中y轴的坐标position.y,得到的即该瓦片在OpenGL(原点在左下角,cocos2dx默认的坐标)坐标下y轴的像素值,最后再除以单个瓦片像素尺寸的高tiledmap->getTileSize().height

我在调试的时候犯了一个特别基础的错误,我在.h文件定义了全局变量TMXTiledMap* tiledmap,然后又在.cpp文件里面这样给他初始化,代码如下:

//.h定义了tiledmap,再这样声明变量初始化,会出错!!!
TMXTiledMap* tiledmap = TMXTiledMap::create("map.tmx");

结果调试了半天都不行,后来才发现是重复定义了,导致的结果是map.tmx地图虽然可以正常地在屏幕中显示,但是却无法获得tiledmap里面的瓦片参数,调试一直出错误。解决的办法很简单,就是把.cpp里面的TMXTiledMap*去掉就好,就像第一段代码那样句没有问题了。

相关文章推荐

谷歌瓦片像素点与经纬度的对应关系

当分析谷歌瓦片的时候会发现,在高纬度区域单位像素表示的经度跨度大,低纬度的跨度小,这时因为谷歌地图采用了非线性拉伸方法。具体原因还未深究,或许是因为低纬度需要表现更好的细节吧,先上一些代码: 经度到...
  • wanm9
  • wanm9
  • 2016年08月25日 22:39
  • 1271

瓦片地图-坐标转换

先明确三点: (1)cocos2dx坐标即opengl坐标体系,是以左下角为原点。 (2)tile坐标是左上角为原点。 (3)tile的默认锚点是左下角。 一、地图坐标 Tiled地图一般...

瓦片地图坐标与触摸坐标的转换

//Position to tileCoord -(CGPoint)tileCoordForPosition:(CGPoint) position  {     int x = position...

瓦片地图坐标相关计算

http://www.cnblogs.com/junyuz/archive/2011/04/19/2021035.html   瓦片地图坐标相关计算 在给定level下,把行号t...

瓦片地图服务参数与计算

开源与成熟商业的瓦片地图服务(TMS  2  WMTS),都有如下共同的特性,基本成为了标准: (1) 坐标系:WGS84 (2) 投影:墨卡托投影(Marcator,正轴等角圆柱投影) -...

google离线地图实例,加载本地地图瓦片, 支持点线面及图文标注,坐标定位,卫星、电子地图切换

说明: 1.无偏移坐标定位; 2.可以自由搭配点线面配置信息(颜色、粗细、透明度等); 3.地图级别自定义; 4.中心点自定义; 5.ajax提交通过php保存到mysql数据库(保存相应的标注信息,...

格子地图 像素坐标 地图坐标 转化

/** * 像素坐标转换为地图坐标 * */ public SpaceToTiled(point: egret.Point): egret.Poin...
  • W_han__
  • W_han__
  • 2016年10月09日 11:31
  • 900

像素坐标三角板.exe

  • 2017年06月23日 10:13
  • 820KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:瓦片地图,通过像素坐标返回瓦片坐标的函数
举报原因:
原因补充:

(最多只允许输入30个字)