关于TiledMap的坐标那些事

今天在解析TiledMap的时候,发现的坐标从文件读取出来的和程序里输出的不一样,先看图吧!

xxx.tmx文件里的数据:

输出坐标的代码:

程序里输出值:

看到这,估计大家都感到诧异,我也诧异,y坐标刚好倒过来,后来在CCTMXXMLParser.cpp里看到了以下代码:

以上代码就对y做了处理,在TiledMap里,原点是左上角,这里就转换成左下角了!

还没结束,因为我自己用的时候把以前老版本的卸载了,下载的最新版0.12.2,这又发现一个问题,先看图!

tmx文件里的数据,是6 * 6 的地图

程序输出的值:

按照之前的解析,坐标原点是左下角,但y坐标出现了负数,怎么可能呢!!!!!!问题出现在哪?先看tmx文件里,是不是比老版本多了width和height属性,这个就是关键!!!在转换坐标的代码里会减去一个height,在老版本里没有这个属性,获得的值为0,在新版本里减去了这个值,导致Y坐标出现这个误差,只要加上一个图块高度就可以了!!

时间: 2024-10-25 05:09:56

关于TiledMap的坐标那些事的相关文章

事件处理指南(Event Handling Guide for iOS) 阅读笔记 (二) 响应链

Event Delivery: The Responder Chain 我们希望在我们的app中可以动态的响应触摸事件.比如一个触摸可能会发生在屏幕上不同的位置和不同的组件上, 我们需要判断哪个组件响应这个触摸并且了解这个组件是如何接受到触摸事件的. 当一个用户触摸事件发生了, UIKit会创建一个包含需要被处理的事件信息的对象.然后将这个对象放入当前的事件循环队列中,对于触摸事件,这个对象被创建为 UIEvent 对象,对于移动事件这个对象会依赖于你使用的 Framework和你所关心的移动事

Android之绘图

一直对画画相关不感冒,但是Android的绘图机制还是要硬着头皮学 绘画主要是使用paint(画笔)在canvas(画布)进行各种图形的绘制,画矩形.圆.三角形等点线构成的2维图形 //矩形 drawRect (float left, float top, float right, float bottom, Paint paint) canvas.drawRect(50, 100, 200, 200, paint); //圆 drawCircle (float cx, float cy, fl

Quick-cocos2d-x3.3 Study (十四)--------- 遍历 TiledMap 中的对象层,并取得所有坐标

遍历 TiledMap 中的对象层,并取得所有坐标 1 -- 将心心添加到背景层中 2 function BackgroundLayer:addHeart( ) 3 -- body 4 -- getObjectGroup 方法从地图中获取到指定的对象层(也就是个 ObjectGroup 对象组对象), 5 -- 对象组 ObjectGroup 中包含了多个对象, 6 -- 所以我们可以通过 getObjects 方法从 ObjectGroup 中获得所有的对象. 7 -- objects 在这里

爬取糗事百科用户地理位置,详细坐标

代码:import requestsfrom lxml import etreeimport csvimport jsonfp = open('E:/map.csv','wt',newline='',encoding='utf-8')writer = csv.writer(fp)writer.writerow(('address','longitude','latitude'))headers = {'User-Agent':'Mozilla/5.0 (compatible; MSIE 9.0;

10682 deathgod想知道的事(数论)

10682 deathgod想知道的事 该题有题解 时间限制:1000MS  内存限制:65535K提交次数:265 通过次数:14 题型: 编程题   语言: G++;GCC Description 一只蚂蚁从衣服地图上爬过留下痕迹,deathgod看到后在地图上建了个坐标,将蚂蚁留下的痕迹分成多条线段首位相连而成, 且那些线段的端点都是整数点,现在他想知道这只蚂蚁经过了坐标中多少个整数点. 输入格式 第一行输入一个整数t,表示case数:对于每个case,第一行输入一个整数n(0<=n<=

用VBS控制鼠标(获取鼠标坐标、鼠标移动、鼠标单击、鼠标双击、鼠标右击)

Demon's Blog 忘记了,喜欢一个人的感觉 Demon's Blog  ?  程序设计  ?  用VBS控制鼠标(获取鼠标坐标.鼠标移动.鼠标单击.鼠标双击.鼠标右击) ? bbPress积分插件--Virtual Money VBS调用WMI监视注册表变动 ? 用VBS控制鼠标(获取鼠标坐标.鼠标移动.鼠标单击.鼠标双击.鼠标右击) 标题: 用VBS控制鼠标(获取鼠标坐标.鼠标移动.鼠标单击.鼠标双击.鼠标右击)作者: Demon链接: http://demon.tw/programm

明知道员工不喜欢干一件事,干不好一件事,你还一定要他去干,人尽其才,物尽其用(转)

下午员工辞职了,我又成了“光杆司令”一枚.谨以此文记. 导火索是因为他坚持他的看法,我不同意.我告诉他,这个问题没有这么简单,我们把它单列出来放在一边,先把其他的事情做了.他不以为然,“我觉得很简单!你说哪里复杂?”我被呛得说不出话来.想了一会儿,只好中断手头的工作,和他一起分析这个问题有多么复杂.我就一步一步的问他的解决方案,并把他说的记录下来,几步之后,他说他之前的方案不行,得改.我就反问他,“一个很简单的问题,你为什么还得改?”他又扯相关的问题,我一次次的想把他拉回来,告诉他,“我们都不是

手机那点事!已有高人把常见的不常见的坑都给找出来了,我就随便转一下了

mobileTech A useful tools or tips list for mobile web application developing 这个项目收集移动端开发所需要的一些资源与小技巧 工具类网站 HTML5 与 CSS3 技术应用评估 各种奇妙的hack 几乎所有设备的屏幕尺寸与像素密度表 移动设备参数表 ios端移动设备参数速查 浏览器兼容表 移动设备查询器 移动设备适配库 移动设备适配库2 viewport与设备尺寸在线检测器 html5 移动端兼容性速查 在线转换字体 c

HTML5简单的坐标网格知识

用html5我想对于坐标和网格应该不会陌生,那么接下来我简单的写下我的理解. 坐标:在HTML5的Canvas中是这样的定义的: 画的不咋的,很好理解吧.仔细看看不就是一些线和点呗,定义了一些数字而已,我们要做的不就是获取这些个数字. 既然知道了坐标,那么我们可以做很多的事了.这里是简单的介绍下,在html中点的话,肯定是浏览器规定了,我们只需要自己去调用而已,那么我们怎么知道呢? 那么就需要网格了.但是我们每次都要去画网格才知道坐标不是很麻烦.所以自己可以估计下画个草图呀.不用每次都去画了.有