0

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

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

我可以轻松计算地图的坐标(在您的角色位置和地图中心之间有a平铺列和平铺行),但我不明白如何定义固定在地图上的起始位置?一旦我启用了保存功能,玩家可能会在不同的位置开始游戏,因此它不能以此为基础。b

4

1 回答 1

0

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

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

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

移动播放器时,更新其世界坐标等。

于 2013-05-30T16:20:01.383 回答