fabrice54 — 2013-11-05 14:31:05

bonjour.

comment faut t'il faire pour tester dans l’écran si il y a un changement de couleurs.Je voudrais faire un programme qui tant que la balle rencontre du blanc la balle reste blanche ,et si elle rencontre du noire elle devient noire.Je ne sais pas comment faire pour dire ,que si la balle se déplace sur autre chose que du blanc elle change de couleur.
merci.

Code (P5) :

PVector boite,balle;
color a=color(255);
color b=color(0);

void setup()
{
  rectMode(CENTER);
  size(400,400);
  boite=new PVector(200,200);
  balle=new PVector(50,50);
}
void draw()
{
  background(a);
  balle.x=mouseX;
  balle.y=mouseY;

  fill(a);
  ellipse(balle.x,balle.y,20,20);
  
  fill(b); 
  rect(width/2,height/2,70,70);
}
Mushussu — 2013-11-06 09:07:01

Bonjour,

Il existe la méthode get() pour lire le pixel de l'image de l'écran.
Sinon, un outil puissant est le tableau pixel[] qui se gère avec loadPixels() et updatePixels().

Regarde dans l'aide, elle est très complète.

fabrice54 — 2013-11-06 10:09:22

bonjour
je te remercie pour ta réponse ,je vais essayer avec les informations que tu m'as données.

fabrice54 — 2013-11-06 10:56:07

rebonjour.
j'ai essayé la fonction get ça fonctionne très bien;mais ça ne fonctionne plus   des que l'on mets la fonction background(255) pourquoi? S.V.P

Code (P5) :

void setup()
{
  size(500,500);
}

void draw()
{
  
 
  int x=mouseX;
 int y=mouseY;
color c = get(x,y);

  fill(c);

ellipse(x,y,50,50);


fill(0);

rect(250,250, 50, 50);

}
Mushussu — 2013-11-06 21:06:28

Je pense que tu n'a pas bien saisis le fonctionnement de la méthode draw().
Avec "l'effaçage" de la fenêtre avec un background, il faut re dessiner les différents éléments avant de faire le test.

void setup()  
{  
  size(500, 500);
}  

void draw()  
{  
  fill(0);  
  background(255);
  rect(250, 250, 50, 50);  

  int x=mouseX;  
  int y=mouseY;  
  color c = get(x, y);  

  fill(c);  

  ellipse(x, y, 50, 50);
}
fabrice54 — 2013-11-07 03:42:45

Ok je remercie pour tes infos;j'ai trouvez un degug pour processing mais tu dois surement  connaitre je t'envoi quant même l'adresse .


http://debug.martinleopold.com/