我正在开发一款使用2D地图(由瓷砖组成)的小游戏。我现在想知道用户正在选择什么样的图块。由于地图可以移动和缩放(glTranslate(),glScale()等),我不完全确定可以进行直接转换。 那么如何从屏幕上的鼠标坐标获取“地图”坐标?
答案 0 :(得分:1)
如果使用无透视在屏幕上以2D绘制地图,则应该根据平铺宽度和平移来确定选择哪个平铺的基本数学。
例如,您可以执行以下操作:
int selectedTileX = (translatedX + mouseX) / tileWidth;
int selectedTileY = (translatedY + mouseY) / tileHeight;
然而,这是针对您的引擎的。
如果使用透视绘制,则可以使用gluUnProject从窗口坐标中获取对象坐标(或者您可以使用自己的函数模拟此函数)。