我正在设计一个应用程序,其中包含排列在9 * 9平方的81个瓷砖。点击后,图块将有一个执行方法。然后,8个周围的瓷砖也是。我怎样才能动态地知道周围有哪些瓷砖?我在考虑为每个瓷砖分配坐标(两个整数x和y),告知它在广场中的位置。有没有办法知道哪个瓷砖有x = 4和y = 7?
答案 0 :(得分: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();
}
}
}
}
}
}