Annonce

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


#1 2014-01-28 05:46:14 problème de bouton

fabrice54
membre
Date d'inscription: 2012-06-07
Messages: 242

problème de bouton



bonjour;

j'aimerais pouvoir faire fonctionner des boutons indépendamment les uns des autres;mais la couleur change en même temps sur l'autre bouton comment résoudre ce problème?

merci.

Code (P5) :

boolean bouton=true;

void setup()
{
  size(500,500);
}
void draw()
{
  rect(100,100,30,30);
  rect(150,100,30,30);
}
void mousePressed()
{
 

 if(bouton==true&& mouseX>100&&mouseX<130&&mouseY>100&&mouseY<130)
{
  fill(0,0,255);
  bouton=false;
}
else
{
  if(mouseX>100&&mouseX<130&&mouseY>100&&mouseY<130)
  {
  bouton=true;
  fill(0,255,255);
}
}
   rect(100,100, 30,30);
}

Hors ligne

 

#2 2014-01-28 08:23:44 Re : problème de bouton

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

Re: problème de bouton



Dans ta boucle la méthode fill() est valable quelque soit l'objet à remplir. Il faut individualiser les objets à remplir d'une couleur :

boolean bouton1, bouton2;  

void setup() {  
  size(500, 500);
  bouton1 = false;
  bouton2 = false;
}

void draw() {
  if (bouton1) {
    fill(0, 0, 255);
  } else {
    fill(0, 255, 255);
  }
  rect(100, 100, 30, 30);
  if (bouton2) {
    fill(0, 0, 255);
  } else {
    fill(0, 255, 255);
  }  
  rect(150, 100, 30, 30);
}  
void mousePressed() {  
  if ((mouseX > 100) && (mouseX < 130) && (mouseY > 100) && (mouseY < 130)) {  
    bouton1 = !bouton1;
  }
  if ((mouseX > 150) && (mouseX < 180) && (mouseY > 100) && (mouseY < 130)) {  
    bouton2 = true;
  }
}  

void mouseReleased() {
  if (bouton2) {
    bouton2 = false;
  }
}

Sinon, il y a la librairie controlP5 qui fonctionne très bien.
Si tu veux, faire tes propres boutons, je t'encourage à utiliser les classes pour que ton code soit lisible et réutilisable.

Hors ligne

 

#3 2014-01-28 08:27:12 Re : problème de bouton

Makio135
membre
Lieu: Lyon
Date d'inscription: 2010-11-11
Messages: 89
Site web

Re: problème de bouton



Lorsque tu cliques la couleur de remplissage change et donc tant que tu ne specifies pas d'autre couleur tous les éléments dessinés dans le draw() prendront cette couleur.
Solution:

boolean bouton=true;
color c1 = color(255);
color c2 = color(0);

void setup()
{
  size(500,500);
}
void draw()
{
  fill (c1);
  rect(100,100,30,30);
  fill (c2);
  rect(150,100,30,30);
}
void mousePressed()
{
 

 if(bouton==true&& mouseX>100&&mouseX<130&&mouseY>100&&mouseY<130)
{
  c1= color(0,0,255);
  bouton=false;
}
else
{
  if(mouseX>100&&mouseX<130&&mouseY>100&&mouseY<130)
  {
  bouton=true;
  c1= color(0,255,255);
}
}
}

Hors ligne

 

#4 2014-01-28 22:54:15 Re : problème de bouton

Makio135
membre
Lieu: Lyon
Date d'inscription: 2010-11-11
Messages: 89
Site web

Re: problème de bouton



Mushussu a été plus rapide que moi et mon téléphone... mais du coup 2 solutions au problème

Hors ligne

 

#5 2014-01-29 03:54:26 Re : problème de bouton

fabrice54
membre
Date d'inscription: 2012-06-07
Messages: 242

Re: problème de bouton



je vous remercies pour vos réponses,j'avais cherchez la librairie IP5,mais je ne l'avais pas trouvez,mais je viens de mettre la main dessus ,controlIP5.

merci encore.
Fabrice.

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024