Cours:BallePOO : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
m ({{Rouge|Première version}})
({{Rouge|avec héritage}})
Ligne 98 : Ligne 98 :
 
   PVector vitesse;
 
   PVector vitesse;
 
   color couleur;
 
   color couleur;
   Forme(PVector p,PVector v)
+
    
  {
+
   Forme(PVector p,PVector v,color c)
    this(p,v,color(random(255),0,0));
 
  }
 
   Forme(PVector p,PVector v, color c)
 
 
   {
 
   {
 +
    couleur = c;
 
     position = p;
 
     position = p;
 
     vitesse = v;
 
     vitesse = v;
    couleur=c;
 
 
   }
 
   }
   abstract void rebondir();
+
    
   void deplacer()
+
   void bouger()
 
   {
 
   {
 
     position.add(vitesse);
 
     position.add(vitesse);
 
   }
 
   }
   abstract void afficher();
+
    
 
   void go()
 
   void go()
 
   {
 
   {
     deplacer();
+
     bouger();
 
     rebondir();
 
     rebondir();
 
     afficher();
 
     afficher();
 
   }
 
   }
 +
 
 +
  abstract void afficher();
 +
 
 +
  abstract void rebondir();
 +
 +
 
}
 
}
  
Ligne 126 : Ligne 129 :
 
   float rayon;
 
   float rayon;
 
   
 
   
   Balle(float r, PVector p,PVector v)
+
   Balle(PVector p,PVector v, color c,float r)
 
   {
 
   {
     this(r,p,v,color(random(255),0,0));
+
     super(p,v,c);
 +
    rayon=r;
 
   }
 
   }
 
   
 
   
  Balle(float r, PVector p,PVector v, color c)
 
  {
 
    super(p,v,c);
 
    rayon = r;
 
  }
 
 
 
 
   void rebondir()
 
   void rebondir()
 
   {
 
   {
Ligne 156 : Ligne 154 :
 
     }
 
     }
 
   }
 
   }
 
+
 +
 
 +
 
   void afficher()
 
   void afficher()
 
   {
 
   {
Ligne 162 : Ligne 162 :
 
     ellipse(position.x,position.y,2*rayon,2*rayon);
 
     ellipse(position.x,position.y,2*rayon,2*rayon);
 
   }
 
   }
 +
 
}
 
}
 +
  
Balle b1,b2;
+
Balle b1;
 
+
 
void setup()
 
void setup()
 
{
 
{
Ligne 171 : Ligne 173 :
 
   PVector p;
 
   PVector p;
 
   PVector v;
 
   PVector v;
 +
  color c;
 +
  c = color(100,100,0);
 
   p = new PVector(15,20);
 
   p = new PVector(15,20);
 
   v = new PVector(1,1);
 
   v = new PVector(1,1);
   b1 = new Balle(r,p,v);
+
   b1 = new Balle(p,v,c,r);
  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);
 
 
}
 
}
 
   
 
   
Ligne 186 : Ligne 185 :
 
   background(255);
 
   background(255);
 
   b1.go();
 
   b1.go();
  b2.go();
 
 
}
 
}
 
</source>
 
</source>

Version du 19 septembre 2016 à 09:36

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();
}


avec héritage

abstract class Forme
{
  PVector position;
  PVector vitesse;
  color couleur;
  
  Forme(PVector p,PVector v,color c)
  {
    couleur = c;
    position = p;
    vitesse = v;
  }
  
  void bouger()
  {
    position.add(vitesse);
  }
  
  void go()
  {
    bouger();
    rebondir();
    afficher();
  }
  
  abstract void afficher();
  
  abstract void rebondir();


}

class Balle extends Forme
{
  float rayon;
 
  Balle(PVector p,PVector v, color c,float r)
  {
    super(p,v,c);
    rayon=r;
  }
 
  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 afficher()
  {
    fill(couleur);
    ellipse(position.x,position.y,2*rayon,2*rayon);
  }
 
}
 

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