Как мне рекурсивно нарисовать шестнадцатеричную карту в opengl?

Я новичок в GL и хотел создать плиточную карту как самоучитель. Я хочу создать маленькую (возможно, 7 гекс ширину / высоту) гекс карту. Моей первой мыслью было просто создать метод для рисования одного гекса, а затем просто перевести соответствующее смещение и поместить новый гекс. Но это не кажется эффективным. Есть идеи? Alos в качестве дополнительного вопроса, как мне определить, есть ли MotionEvent с данным гексом?

2 ответа

Решение

Чтобы определить, находится ли MotionEvent в определенном гексе, вы должны преобразовать координаты, переданные через событие motion, в ваши координаты OpenGL World. Это похоже на конвертацию единиц, вы знаете, что экран меняется от 0 - WIDTH, а ваш мир GL, скажем, меняется от -1 до 1.

(xCoord / (Width - 0)) * (1 - (-1)) = xCoordWorld

даст вам xCoord от 0 до 2, затем вычтите 1, чтобы получить от -1 до 1.

Что касается гексов, я всегда использовал "художественные" гексы. Нарисуйте гекс в краске, затем нарисуйте группу квадратов с этим произведением искусства, быстро и легко поменять гекс на другой гекс.

Другие вопросы по тегам