我正在尝试在一个非常基本的程序中模拟一场战斗,但由于这是我第一次使用 Java 中的大型程序,所以我对如何进行几乎一无所知。我在想我应该有一个 600×600 的大面板并使用 Graphics2D 将地形绘制为 20x20 矩形......不幸的是,即使有几个教程我也不知道该怎么做。
我有 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 教程做到了这一点,所以我的代码有点不稳定。我在主表单代码中只有一个复选框触发事件。(GUI 是在 Netbeans 编辑器中预先设计的。)