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