2010-11-16 1 views
2

Итак, у меня есть эта доска, чтобы играть в настольную игру ... Проблема в том, как узнать, на какой квадрат нажал пользователь? Я знаю координаты x и y, но как его автоматизировать, без необходимости выслеживать конкретные местоположения каждого квадрата. (Также размер платы является переменным ... поэтому он может иметь много квадратов или очень мало, но плата всегда имеет ту же высоту и ширину, то есть то же количество квадратов, которые идут слева направо, как количество квадратов, идущих сверху вниз).Как бы вы решили эту проблему (в c), зная, в каком квадрате в настольной игре пользователь нажал?

Спасибо вам столько переполнения стека :)

+0

Является ли это в 3d тогда? – McKay

ответ

1

Есть много вариантов, предлагаемых на сайте: http://www.opengl.org/resources/faq/technical/selection.htm

+0

Не могли бы вы предоставить мне пример? – dasen

+0

http://www.opengl.org/resources/code/samples/redbook/ имеет примеры выбора – tkerwin

+0

Эта функция устарела в течение очень долгого времени и не может поддерживаться на аппаратном уровне современными графическими процессорами; Я искренне рекомендую забыть об этом. – Kos

0

Проблемы вы говорите, называются «собирание» и есть несколько решений для этого:

  • окклюзия сбор на основе запросов (вполне современно, но я не пробовал еще - есть какая-то напыщенная на эту тему here)
  • геометрическое комплектования (математика, и не зависит от OpenGL),
  • набор цветов (немного старый и хакерский, но очень простой в реализации).

я ранее описал последний подход здесь:
OpenGL GL_SELECT or manual collision detection?