2016-08-18 54 views
-2

誰能告訴我如何在循環中使用mousePressed當我點擊每個正方形時,它一次改變一個顏色。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() {} 
+0

https://processing.org/reference/mousePressed_.html –

回答

0

步驟1:商店狀態在某些類型的數據結構中的平方。你可以使用這個值的二維數組boolean

第2步:將數據結構映射到正方形的位置。如果您有二維陣列,則可以將索引[i][j]映射到i*50, j*50x,y位置。這只是一個例子,你使用的值取決於你希望你的方格有多大。

步驟3:mousePressed()功能,走另一條路:給出的光標的位置mouseX, mouseY,映射回在2D陣列的[i][j]索引。設置該索引的狀態(例如,在該索引處翻轉boolean值)。

步驟4:draw()函數,基於該索引的值迭代您的2D陣列和繪製一個正方形(使用來自步驟2相同的座標映射)。