mousePressed 循环

mousePressed in a loop

谁能告诉我如何在循环中使用 mousePressed 当我点击每个方块时,它会一次改变一个颜色。

int WIDTH = 200; 
int HEIGHT = 200;
int X = WIDTH /3; 
int Y = HEIGHT / 4;

void setup()
{
    size(200,200); 
    background(255);
    strokeWeight(4);
    stroke(2);
}

void draw()
{
    for (int n = 0; n < 4; n++) { 
        for (int g = 0; g < 4; g++) { 
            if ((n + g + 1) % 2 == 0) {
            }
            fill(255);
            rect(n * X, g * Y, (n + 1) * X, (g + 1) * Y); 
        }
    }
}
void mousePressed() {}

第 1 步:将方块的状态存储在某种数据结构中。您可以为此使用 boolean 值的二维数组。

步骤 2: 将数据结构映射到方块的位置。如果您有一个二维数组,您可以将索引 [i][j] 映射到 i*50, j*50x,y 位置。这只是一个示例,您使用的值取决于您希望方块的大小。

第 3 步:mousePressed() 函数中,走另一条路:给定光标的 mouseX, mouseY 位置,将其映射回 [i][j] 二维数组中的索引。设置该索引的状态(例如,翻转该索引处的 boolean 值)。

第 4 步:draw() 函数中,遍历二维数组并根据值绘制一个正方形(使用与第 2 步相同的坐标映射)在那个指数。