在“无限”地图上定义固定坐标起点

时间:2013-05-30 16:06:10

标签: java

使用2d自上而下的瓷砖地图游戏 - 我一直在研究生成地图坐标(x / y),玩家可以用它来导航(“无限”,perlin /其他生成的地形)地图,以及解决噪音产生的问题。

我已经看过解决方案并被告知将世界坐标转换为屏幕坐标,反之亦然 - 但我无法弄清楚如何正确定义固定地图坐标,因为在屏幕上渲染某些东西是通过坐标相对来完成的到框架/窗格...所以0,0始终是窗口的左上角,无论地图在哪里。

我可以轻松计算地图的坐标(角色的位置和地图中心之间有a个图块列和b图块行)但我无法理解如何定义固定的地图起始位置?一旦我启用了保存功能,播放器就可以在不同的位置启动游戏,因此它不能基于此。

1 个答案:

答案 0 :(得分:0)

做这样的事情时,所有坐标都应该是“世界坐标”。所以你的玩家位置就在无限地图上,而不是他在屏幕上的位置。

要渲染所有内容,您需要一个获取世界坐标并将其转换为屏幕坐标的方法,反之亦然。

要开始渲染,请使用屏幕坐标0,0 - >转换为世界坐标以使图块在左上角渲染。与单击某些内容相同:获取鼠标坐标,转换,然后在世界地图上查看其中的内容。

移动播放器时,更新它的世界坐标等