У меня есть карта, состоящая из строк и столбцов шестиугольников
Это не фактическое изображение гексаграммы, которую я использую, но использует шестиугольники размера и формы
Мне нужно знать, с какой мышью заканчивается щелчок пользователя,
Каждый шестиугольник представлен экземпляром класса "Плитка", однако он не содержит данных о местоположении или даже многоугольника, поэтому в основном единственный способ сказать, где находится конкретный шестиугольник, - это знать его положение в 2D-массиве.
Я использовал квадратную сетку раньше, и было относительно легко определить, какой квадрат был выбран, потому что пиксели также квадратные,
// example where each square is 10 by 10 pixels:
private void getClickedSquare(MouseEvent me)
{
int mouseX = me.getX();// e.g. 25
int mouseY = me.getY();// e.g. 70
int squareX= (int) (mouseX / 10);// in this case 2
int squareY= (int) (mouseY / 10);// in this case 7
//then to access the tile I would do
map.squares[squareX][squareY].whatever();
}
Но я даже не знаю, с чего начать с Hexagons, есть ли у кого-нибудь опыт?
Я не могу использовать полигоны (Java), так как, когда я нахожусь для перемещения карты по экрану и увеличения ее размера, у меня возникнут проблемы с обновлением огромного количества полигонов в каждом кадре. Хотя тогда я мог бы просто проверить, включена ли точка в любой из полигонов плитки карты!
В настоящий момент отображаемые шестиугольники - это просто BufferedImages.
Если вы хотите узнать больше информации, пожалуйста, спросите, Спасибо за ваше время: D