2011-11-13 4 views
-1

저는 2D 맵 (타일로 구성)을 사용하는 작은 게임을 만들고 있습니다. 이제 타일이 사용자에 의해 선택되고 있는지 알아 보려고합니다. 지도가 이동하고 크기를 조정할 수 있기 때문에 (glTranslate(), glScale() 등) 직접 변환이 가능하지는 않습니다. 그러면 화면의 마우스 좌표에서 "맵"좌표를 어떻게 얻을 수 있습니까?OpenGL에서 2D 화면 좌표를 2D지도 좌표로 변환하려면 어떻게해야합니까?

답변

1

지도가 이 아니며 화면에 2D로 그려진 경우 인 경우 타일 너비와 번역을 기반으로 선택한 타일을 결정하는 데 약간의 기본 계산이 필요합니다. 그러나이 엔진에 특정

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

:

예를 들어, 당신은 뭔가를 할 수 있습니다. 이 관점와 을 그려 경우


, 당신은 객체 창 좌표에서 좌표를 얻을 수 gluUnProject을 사용할 수 있습니다 (또는 당신은 당신의 자신의이 기능을 모방 할 수있다).

+0

완전히 평평한 표면에 그림을 그리지 만지도를 확대하거나 축소하여 확대/축소합니다. 그러나 직접 변환이 더 많거나 적은 경우 산술을 사용하여 최종 위치를 계산할 수 있어야합니다. 도와 주셔서 감사합니다 :) – Bartvbl

관련 문제