2011-11-13 157 views
-1

我正在使用2D地圖(由瓷磚組成)的小遊戲。現在我想知道用戶正在選擇哪個圖塊。由於地圖可以移動和縮放(glTranslate(),glScale()等),我不完全確定直接轉換是可能的。 那麼如何從屏幕上的鼠標座標獲取「地圖」座標?如何將2D屏幕座標轉換爲openGL中的2D地圖座標?

回答

1

如果地圖在屏幕上以2D形式繪製,並且無透視,那麼根據圖塊寬度和平移來確定選擇哪個圖塊應該只是一些基本的數學運算。

例如,你可以這樣做:

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

然而,這是專門針對你的引擎。


如果繪製與角度,那麼你可以使用gluUnProject得到物體座標窗外座標(或者你可以模仿與自己的此功能)。

+0

我正在繪製完全平坦的表面,但要縮放地圖以放大或縮小。但如果它或多或少是直接轉換,應該可以使用算術計算最終位置。謝謝您的幫助 :) – Bartvbl

相關問題