我正在学习Java,所以我很新。我正在使用 GUI 布局、图像、标签等创建一个简单的“迷宫”类型游戏。
为了创建我的迷宫布局,我使用了一个字符串数组;
mazeLayout[0] = "WWWWWWWWWW";
mazeLayout[1] = "WSSSWWSWWW";
mazeLayout[2] = "WSWSWWSSSW";
mazeLayout[3] = "WSWSWWWWSW";
mazeLayout[4] = "WSWSWWWWSW";
mazeLayout[5] = "WSWSWSSSSW";
mazeLayout[6] = "WSWSWSWWWW";
mazeLayout[7] = "WSWSWSWWWW";
mazeLayout[8] = "WSWSSSWWWW";
mazeLayout[9] = "WWWWWWWWWW";
然后将其转换为二维数组并在其中放置一个带有图像图标的标签,具体取决于字符串为“W”表示墙壁或“S”表示空间。标签也是一个数组,我的想法是限制玩家的移动,这样他们就不能穿过墙壁。
int mw = 0;
int mf = 0;
for(int y = 0; y < 10; y++){
for(int x = 0; x < 10; x++){
mazeLayout2d[y][x] = mazeLayout[y].substring(x, x+1);
if (mazeLayout2d[y][x].equals("W")){
lblmazewall[mw] = new JLabel();
mazewall = new ImageIcon("mazewall.png");
lblmazewall[mw].setIcon(mazewall);
pCenter.add(lblmazewall[mw]);
mw++;
pCenter.revalidate();
}
if (mazeLayout2d[y][x].equals("S")){
lblmazefloor[mf] = new JLabel();
mazefloor = new ImageIcon("mazefloor.png");
lblmazefloor[mf].setIcon(mazefloor);
pCenter.add(lblmazefloor[mf]);
mf++;
pCenter.revalidate();
}
}
}
我的问题是当我运行这条线时
System.out.println(lblmazewall[x].getLocation()); //x being any number
我总是得到 java.awt.Point[x=0,y=0]
我想知道如何获取每个墙标签的位置,以便根据我的玩家移动检查它。
这甚至是做这种事情的有效方法吗?有人可以教我一个更有效的方法吗?
抱歉我的粗略片段和/或糟糕的编程
谢谢尼尔。