2016-08-18 3 views
-2

может кто-нибудь сказать мне, как использовать мышьПредусмотрена в цикле , когда я нажимаю на каждый квадрат, он меняет цвет по одному.mousePressed in a loop

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: Хранить состояние ваших площадей в какой-то структуры данных. Для этого вы можете использовать 2D-массив значений boolean.

Шаг 2: Составить структуру данных в позиции квадратов. Если у вас есть 2D-массив, вы можете сопоставить индекс [i][j] с положением x,yi*50, j*50. Это всего лишь пример, и используемые вами значения зависят от того, насколько велики ваши квадраты.

Шаг 3: В функции mousePressed(), пойти другим путем: учитывая mouseX, mouseY положение курсора, карта, что обратно в [i][j] индекса в 2D-массив. Установите состояние этого индекса (например, переверните значение boolean в этот индекс).

Шаг 4: В функции draw(), итерации по 2D-массива и нарисовать квадрат (с использованием той же отображение координат из шага 2) на основе значения в этом индексе.