Как мне рекурсивно нарисовать шестнадцатеричную карту в 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.
Что касается гексов, я всегда использовал "художественные" гексы. Нарисуйте гекс в краске, затем нарисуйте группу квадратов с этим произведением искусства, быстро и легко поменять гекс на другой гекс.