Java - Создание 2D-карты тайлов на панели с помощью Graphics2D Rectangles?
Я пытаюсь смоделировать битву в действительно простой программе, но так как я впервые с большой программой на Java, я почти не знаю, как действовать дальше. Я думал, что у меня будет большая панель 600 на 600 и я буду использовать Graphics2D, чтобы просто рисовать ландшафт в виде прямоугольников размером 20х20 ... К сожалению, даже с несколькими уроками я понятия не имею, что делать.
У меня есть 10 различных типов местности, чтобы проехать, и 5 разных ландшафтных профилей. По сути, я хочу, чтобы программа работала, когда я выбираю определенный профиль в поле со списком, он рисует ландшафт и две противоположные стороны в битве (хотя я еще не совсем там)
Честно говоря, я не достиг большого прогресса в программе. Должен ли я использовать просто Graphics2D и прямоугольники для чего-то вроде этого, или я должен перейти на OpenGL или что-то подобное? Хотя с моим нынешним опытом работы с Java, я не думаю, что смогу справиться с этим без посторонней помощи. В любом случае, вот что у меня есть:
public class Map extends JPanel {
int n = 1;
int x; int y;
int Area = 750;
public Color City = new Color(214,217,223);
public Color Desert = new Color(255,204,102);
public Color DirtRoad = new Color(153,102,0);
public Color Forest = new Color(0,102,0);
public Color Hills = new Color(51,153,0);
public Color Lake = new Color(0,153,153);
public Color Mountains = new Color(102,102,255);
public Color Ocean = new Color(0,0,153);
public Color PavedRoad = new Color(51,51,0);
public Color Plains = new Color(102,153,0);
public Rectangle blocks[];
public Map(){
blocks = new Rectangle[750];
if (n == 1) {
setBackground(City);
n = 2;
} else if (n == 2) {
setBackground(Desert);
n = 3;
} else if (n == 3) {
setBackground(DirtRoad);
n = 4;
} else if (n == 4) {
setBackground(Forest);
n = 5;
} else if (n == 5) {
setBackground(Hills);
n = 6;
} else if (n == 6) {
setBackground(Lake);
n = 7;
} else if (n == 7) {
setBackground(Mountains);
n = 8;
} else if (n == 8) {
setBackground(Ocean);
n = 9;
} else if (n == 9) {
setBackground(PavedRoad);
n = 10;
} else if (n == 10) {
setBackground(Plains);
n = 1;
} else {
}
for (int i = 1; i <= Area; i++) {
blocks[i] = new Rectangle(x, y, 20, 20);
}
}
Я дошел до этого с несколькими уроками Youtube, так что мой код немного ошибочен. Все, что у меня есть в основном коде формы, это событие запуска checkBox. (GUI предварительно разработан в редакторе Netbeans.)