2009-03-25 7 views
2

Я пытаюсь реализовать мелкомасштабную стратегию, сменяя игру , реализованную на Java, графический интерфейс выполнен с использованием JFace и SWT.GUI, java, SWT и представление карты мира

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

Это мой первый раз пытаюсь реализовать проект такого типа, пожалуйста, сообщите

ответ

3

Если это основано на карту плитки (как в Цивилизации) или он отображается в виде пиксельной, вы могли бы сохранить право собственности на каждую плитку/pixel в двумерном массиве. Просто покажите на карте простую, кликабельную pixmap в холсте, добавьте MouseListener. Если вы получаете событие щелчка по координатам (X, Y), вы можете просто получить вашу страну как:

Country clickedCountry = myCountriesOnMap[X][Y]; 

... в вашем Listener, реализующего интерфейс MouseListener. myCountriesOnMap будет иметь тип Country [] [].

Конечно, вам понадобится алгоритм, который разрешит владение для каждой плитки/пикселя при запуске или если территория будет завоевана (я не знаю, если это может произойти). Возможно, вам придется определять свои страны как полигоны (например, вы сделали бы это для HTML-карты). Я не могу помочь вам в этом, так как я не сделал ничего подобного, но я уверен, что вы найдете что-то в Google.

Приветствия

Захер

0

Попытка использовать данные OpenStreetMap. Он содержит точные границы страны и хорошие возможности экспорта изображений.

Key:border tag покажет вам все границы. Вы можете извлечь его и рассчитать свои клики.

Смежные вопросы