Как преобразовать координату 2D-экрана в координату 2D-карты в openGL? - PullRequest
0 голосов
/ 13 ноября 2011

Я работаю над небольшой игрой, в которой используется 2D-карта (составленная из плиток). Теперь я хотел бы узнать, какую плитку выбирает пользователь. Поскольку карта может перемещаться и масштабироваться (glTranslate (), glScale () и т. Д.), Я не совсем уверен, что прямое преобразование возможно. Так как же получить координаты «карты» из координат мыши на моем экране?

1 Ответ

1 голос
/ 13 ноября 2011

Если карта нарисована в 2D на экране с без перспективы , то для определения выбранного тайла должна быть просто базовая математика, основанная на ширине тайла и его переводе.

Например, вы можете сделать что-то вроде:

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

Однако это зависит от вашего двигателя.


Если оно нарисовано с перспективой ,тогда вы можете использовать gluUnProject , чтобы получить координаты объекта из оконных координат (или вы можете имитировать эту функцию с помощью своей собственной).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...