我已经设法在单击时打印单元格的坐标。
现在我正在寻找帮助和建议来使用这些数据,以便将细胞颜色更改为红色 - 除非选择的细胞是基础细胞,我希望它们保持为常数。这是我正在使用的代码:
$(" $('body').css('overflow', 'hidden');");
编辑: 我添加了我正在寻找的功能,但我认为我没有正确存储我的基本单元数据。您仍然可以单击基本单元格,并在下方绘制活动单元格。这是新代码:
Tile[][] tileArray = new Tile[10][10];
int rows = 10;
int cols = 10;
int[] base = { 4,4, 4,5, 4,6, 4,7 };
void setup() {
size(500, 500);
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
tileArray[i][j] = new Tile(i*50, j*50);
}
}
}
void draw() {
for (int i=0; i<base.length; i+=2) {
fill(0, 0, 255);
rect(base[i]*50, base[i+1]*50, 50, 50);
}
}
void mousePressed() {
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
println (mouseX/50 +"," + mouseY/50);
}
}
}
class Tile {
Tile(int x, int y) {
fill(255);
stroke(0);
rect(x, y, 50, 50);
}
}
答案 0 :(得分:0)
你的瓷砖课现在没有意义。从构造函数绘制到屏幕没有任何意义。相反,将该逻辑移动到draw()
类中的Tile
函数。
你的Tile
课程还必须跟踪其状态:它是否是基本单元格,或者它可以是任何其他类型的单元格。您可以使用枚举,int或一组布尔值来执行此操作。那部分完全取决于你。
然后在Tile.draw()
函数中,您应该检查该状态以决定要绘制的颜色。从草图的draw()
函数中,只需循环遍历每个Tile
并告诉它自己绘制。
最后,当您点击时,只需设置您点击的Tile
的状态。