我正在学习Java,所以我很新。 我使用GUI布局,图像,标签等创建了一个简单的'迷宫'型游戏..Java JLabel.getLocation()总是返回0
要创建我的迷宫布局,我使用了一个字符串数组;
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";
,然后转换此为2D阵列和图像图标放置在标签与它取决于串是用于墙壁或“S”用于空间“W”英寸此外,标签是一个数组,我背后的想法是限制玩家的移动,使他们不能穿过墙壁。
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]
我想知道如何获取每个墙上标签的位置,以便我可以根据我的玩家动作进行检查。
这甚至是一个有效的方式来做这样的事情吗? 有人可以教我一个更有效的方法吗?
对不起,我粗段和或不好的编程
三江源尼尔。