Bonjour,
La méthode rect() dessine un rectangle et n'envoie aucune valeur.
Une solution pour ton problème est de stocker en mémoire la couleur d'affichage du rectangle.
color white = color(255, 255, 255); color blue = color(0, 0, 255); color pink = color(255, 83, 200); color couleur; void setup() { size(400, 400); mouseX = 0; mouseY = 0; couleur = white; noStroke(); } void draw() { fill(couleur); rect(0, 0, width/2, height/2); } void mouseReleased() { if ((0 < mouseX) && (mouseX < width / 2) && (0 < mouseY) && (mouseY < height / 2)) { if (couleur == white) { couleur = blue; } else if (couleur == blue) { couleur = pink; } else if (couleur == pink) { couleur = white; } } }
Hors ligne
Bonsoir,
Tu faisais le test de couleur sur une zone que le rectangle donc les deux conditions ne pouvaient être remplies. Voici la correction :
color gris= color(200); color vert= color(0, 255, 0); color blanc= color(255, 255, 255); color bleu= color(0, 0, 255); void setup() { size(400, 400); background(200); } void draw() { println(mouseX); println(mouseY); } void mouseReleased() { if (0<=mouseX && mouseX<=(width/2) && 0<=mouseY && mouseY<=(height/2)) { //zone 1 if (get(mouseX, mouseY) == gris) { //premier clic fill(blanc); noStroke(); rect(0, 0, width/2, height/2); return; } if (get(mouseX, mouseY) == blanc) { //deuxieme clic fill(vert); noStroke(); rect(0, 0, width/2, height/2); } } }
Hors ligne
Pages: 1