2

Еще раз я начал экспериментировать с Android-вещами. Я пытаюсь создать небольшую простую игру, в которой используется шестиугольная доска. Я знаю математику за гексагональными вычислениями, но проблема в том, как реально реализовать такую ​​плату в Android?Шестиугольная доска для Android - как это сделать?

Сначала я подумал о том, чтобы использовать сетку, где каждая другая линия смещена на половину шага, а затем использовать эти квадратные сетки в качестве моей доски и просто нарисовать гексагональную форму над квадратными квадратами. Однако регулярное представление сетки, похоже, не позволяет мне это делать.

Displaced square grid

Так что я подумал, что, может быть, мне нужно создать настраиваемое представление с каждой шестиугольной сеткой или настраиваемое представление с квадратным смещаются сеткой.

Я не знаком с пользовательскими видами Android. Я прочитал учебник о пользовательских представлениях от Vogella's tutorials, но я все еще очень не уверен, даже если вы можете создать шестиугольную сетку в качестве пользовательского представления.

Итак, любые идеи и помощь в создании и внедрении шестиугольной игровой панели на Android?

+2

[Это сообщение] (http://stackoverflow.com/a/23152499/2850651) может дать вам некоторые идеи. –

+0

Спасибо большое! Это выглядит очень многообещающим и очень тем, что я хочу сделать. – zaplec

ответ

0

Я бы, конечно, пошел с нестандартным представлением для этого. Когда вы рисуете представление, вы можете иметь петлю, которая рисует каждую гексагональную плитку в нужном месте в пределах представления в целом. Это даст вам максимальную гибкость.

Я предлагаю вам начать с написания метода, который определяет для любой точки в пределах всего вида, в которой находится гексагональная плитка. Вам понадобится это для определения того, какая плитка была затронута, и это также поможет с рисунком ,

Хорошая вещь об этом является то, что если вы уследить центра каждой плитки, то для любой заданной точки, ближайшая точка центра будет сказать, какая плитка точка находится в.

+0

Да, я думал о пользовательском представлении, которое имеет вид решетки, состоящей только из центральных точек гексов. Тогда я мог бы нарисовать гексы поверх этих точек. Проблема здесь в том, что, как я уже сказал в этом вопросе, я действительно не знаком с пользовательскими представлениями Android и в настоящее время понятия не имею, возможно ли это сделать, и если это возможно, как его реализовать. Думаю, мне нужно прочитать намного больше уроков из страницы Vogella. – zaplec

+0

@zaplec oh да, это конечно возможно! Если вы можете нарисовать один шестиугольник, вы можете привлечь много! –