2017-06-13 38 views
0

我正在設計一個應用程序,其中包含81個佈置在9 * 9平方的瓷磚。一旦點擊,瓦片將有一個方法來執行。然後,也是8個周圍的瓷磚。我怎樣才能動態地知道哪些瓷磚是周圍的?我正在考慮給每個瓦片分配座標(兩個整數x和y),以通知它在正方形中的位置。例如,有沒有辦法知道哪個瓦片的x = 4和y = 7?參考來自同一類的所有對象

+1

將它們存儲在二維數組中,然後您可以通過它們的座標引用它們。 –

回答

1

您可以將所有拼貼存儲在公開存儲的9x9陣列中,並將特定拼貼的i和j位置傳遞給它。點擊一個貼圖時,可以調用一個全局方法,該方法將您點擊的貼圖的i和j並在每個周圍貼圖上運行一個方法。

public Tile[] tiles = [[tile1,tile2,...],[row2...],...[row9...]]; 

public void triggerTiles(int ith, int jth) { 
    for (int i = ith - 1; i <= ith + 1; i ++) { 
     if(i < tiles.length && i >= 0) {// check if we are in bounds 
      for(int j = jth - 1; j <= jth + 1; j ++) { 
       if(j < tiles[i].length && j >= 0) {// check if we are in bounds 
        if(i != ith && j != jth) { //If not the center tile 
         tiles[i][j].callMethod(); 
        } 
       } 
      } 
     } 
    } 
}