Cours:BallePOO : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
Ligne 6 : Ligne 6 :
 
   float rayon;
 
   float rayon;
 
   PVector position;
 
   PVector position;
 +
  PVector vitesse;
 
   color couleur;
 
   color couleur;
 
+
   Balle(float r, PVector p)
+
   Balle(float r, PVector p,PVector v)
 
   {
 
   {
 
     rayon = r;
 
     rayon = r;
 
     position = p;
 
     position = p;
 +
    vitesse = v;
 
     couleur = color(100,0,0);
 
     couleur = color(100,0,0);
 
   }
 
   }
 
+
   Balle(float r, PVector p, color c)
+
   Balle(float r, PVector p,PVector v, color c)
 
   {
 
   {
     this(r,p);
+
     this(r,p,v);
 
     couleur = c;
 
     couleur = c;
 
   }
 
   }
 
    
 
    
 +
  void rebondir()
 +
  {
 +
    if (position.x<=rayon)
 +
    {
 +
      vitesse.x=-vitesse.x;
 +
    }
 +
    if (position.y<=rayon)
 +
    {
 +
      vitesse.y=-vitesse.y;
 +
    }
 +
    if (position.x>=(width-rayon))
 +
    {
 +
      vitesse.x=-vitesse.x;
 +
    }
 +
    if (position.y>=(height-rayon))
 +
    {
 +
      vitesse.y=-vitesse.y;
 +
    }
 +
  }
 +
 
 +
  void deplacer()
 +
  {
 +
    position.add(vitesse);
 +
  }
 +
 
   void afficher()
 
   void afficher()
 
   {
 
   {
 
     fill(couleur);
 
     fill(couleur);
 
     ellipse(position.x,position.y,2*rayon,2*rayon);
 
     ellipse(position.x,position.y,2*rayon,2*rayon);
 +
  }
 +
 
 +
  void go()
 +
  {
 +
    deplacer();
 +
    rebondir();
 +
    afficher();
 
   }
 
   }
 
}
 
}
 +
  
  
 
Balle b1,b2;
 
Balle b1,b2;
 
  
 
void setup()
 
void setup()
Ligne 36 : Ligne 70 :
 
   float r = 10;
 
   float r = 10;
 
   PVector p;
 
   PVector p;
 +
  PVector v;
 
   p = new PVector(15,20);
 
   p = new PVector(15,20);
   b1 = new Balle(r,p);
+
  v = new PVector(1,1);
 +
   b1 = new Balle(r,p,v);
 
   color c;
 
   color c;
 
   c = color(0,100,0);
 
   c = color(0,100,0);
 
   p = new PVector(40,40);
 
   p = new PVector(40,40);
   b2 = new Balle(r,p,c);
+
  v = new PVector(0.5,1);
 +
   b2 = new Balle(r,p,v,c);
 
}
 
}
 
+
 
+
 
void draw()
 
void draw()
 
{
 
{
b1.afficher();
+
  background(255);
b2.afficher();
+
  b1.go();
 +
  b2.go();
 
}
 
}
 
 
</source>
 
</source>

Version du 13 septembre 2016 à 08:06

Première version

class Balle
{
  float rayon;
  PVector position;
  PVector vitesse;
  color couleur;
 
  Balle(float r, PVector p,PVector v)
  {
    rayon = r;
    position = p;
    vitesse = v;
    couleur = color(100,0,0);
  }
 
  Balle(float r, PVector p,PVector v, color c)
  {
    this(r,p,v);
    couleur = c;
  }
  
  void rebondir()
  {
    if (position.x<=rayon) 
    {
      vitesse.x=-vitesse.x;
    }
    if (position.y<=rayon) 
    {
      vitesse.y=-vitesse.y;
    }
    if (position.x>=(width-rayon)) 
    {
      vitesse.x=-vitesse.x;
    }
    if (position.y>=(height-rayon)) 
    {
      vitesse.y=-vitesse.y;
    }
  }
  
  void deplacer()
  {
    position.add(vitesse);
  }
 
  void afficher()
  {
    fill(couleur);
    ellipse(position.x,position.y,2*rayon,2*rayon);
  }
  
  void go()
  {
    deplacer();
    rebondir();
    afficher();
  }
}



Balle b1,b2;

void setup()
{
  float r = 10;
  PVector p;
  PVector v;
  p = new PVector(15,20);
  v = new PVector(1,1);
  b1 = new Balle(r,p,v);
  color c;
  c = color(0,100,0);
  p = new PVector(40,40);
  v = new PVector(0.5,1);
  b2 = new Balle(r,p,v,c);
}
 
 
void draw()
{
  background(255);
  b1.go();
  b2.go();
}