2011-11-13 251 views
-1

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

回答

1

如果地图在屏幕上以2D形式绘制,并且无透视,那么根据图块宽度和平移来确定选择哪个图块应该只是一些基本的数学运算。

例如,你可以这样做:

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

然而,这是专门针对你的引擎。


如果绘制与角度,那么你可以使用gluUnProject得到物体坐标窗外坐标(或者你可以模仿与自己的此功能)。

+0

我正在绘制完全平坦的表面,但要缩放地图以放大或缩小。但如果它或多或少是直接转换,应该可以使用算术计算最终位置。谢谢您的帮助 :) – Bartvbl

相关问题