我正在學習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]
我想知道如何獲取每個牆上標籤的位置,以便我可以根據我的玩家動作進行檢查。
這甚至是一個有效的方式來做這樣的事情嗎? 有人可以教我一個更有效的方法嗎?
對不起,我粗段和或不好的編程
三江源尼爾。