GUI, Java, SWT и карта мира - PullRequest
2 голосов
/ 26 марта 2009

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

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

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

Ответы [ 2 ]

3 голосов
/ 26 марта 2009

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

Country clickedCountry = myCountriesOnMap[X][Y];

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

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

Привет

Sacher

0 голосов
/ 13 мая 2009

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

Ключ : тег границы покажет вам все границы. Вы можете извлечь его и рассчитать кликабельные области.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...