Annonce

>>> Bienvenue sur codelab! >>> Première visite ? >>> quelques mots sur codelab //// une carte des membres//// (apéros) codelab


#1 2017-10-24 16:08:12 Changer la couleur plusieurs fois en cliquant

Mushussu
membre
Lieu: Orléans
Date d'inscription: 2012-05-24
Messages: 802

Changer la couleur plusieurs fois en cliquant



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

 

#2 2017-11-12 20:59:47 Re : Changer la couleur plusieurs fois en cliquant

Mushussu
membre
Lieu: Orléans
Date d'inscription: 2012-05-24
Messages: 802

Re: Changer la couleur plusieurs fois en cliquant



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

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024