如何在OpenGL中将2D屏幕坐标转换为2D地图坐标?

时间:2011-11-13 01:09:20

标签: opengl

我正在开发一款使用2D地图(由瓷砖组成)的小游戏。我现在想知道用户正在选择什么样的图块。由于地图可以移动和缩放(glTranslate(),glScale()等),我不完全确定可以进行直接转换。 那么如何从屏幕上的鼠标坐标获取“地图”坐标?

1 个答案:

答案 0 :(得分:1)

如果使用无透视在屏幕上以2D绘制地图,则应该根据平铺宽度和平移来确定选择哪个平铺的基本数学。

例如,您可以执行以下操作:

int selectedTileX = (translatedX + mouseX) / tileWidth;
int selectedTileY = (translatedY + mouseY) / tileHeight;

然而,这是针对您的引擎的。


如果使用透视绘制,则可以使用gluUnProject从窗口坐标中获取对象坐标(或者您可以使用自己的函数模拟此函数)。