0
我创建了一个名为Cell的对象网格。每个单元具有以下属性:获取已点击的数组项目
x coordinate
y coordinate
width
height
单元的宽度等于它的高度。每个单元格都具有相同的宽度/高度。 有9个* 9格,彼此相邻,该算法创建:
cells = new Cell[9][0];
for(int i = 0; i < 9; i++) {
for(int j = 0; j < 9; j++) {
cells[i][j] = new Cell(i*cellWidth, j*cellHeight);
}
}
电池的构造要求x和y坐标。现在我们得到了一个Cells的网格。 当我触摸屏幕时,我知道我触摸屏幕时的x和y坐标。我触摸的这个单元格应该运行一个名为isTouched的方法。
如何找出我触摸过的细胞?
我试过这个算法:
public boolean isTouched(int zx, int zy) {
if((zx >= x && zx <= x+cellSize) && (zy >= y && zy <= y+cellSize)) {
return true;
}else {
return false;
}
}
ZX和ZY是触摸的坐标。它检查触摸的x轴是否大于或等于单元格自己的x坐标,以及它是否小于单元格的x坐标+单元格的宽度。与y坐标一样的东西。
当我点击第一行的单元格,第一行的第一个元素被选中时,它将不起作用。当在第五行中的元素上点击时,第五行中的第五个元素被选中,尽管我已经按下了另一个单元格。
下面是截图
我找不到我的错误,有什么建议?在此先感谢
'如何isTouched()'获取调用? – gla3dr 2014-11-08 18:39:55
再次通过两个forloops,在每个单元格中调用isTouched – user2410644 2014-11-08 18:41:06