Cours:BallePOO : Différence entre versions
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,color c) | |
| − | |||
| − | |||
| − | Forme(PVector p,PVector v, color c) | ||
{ | { | ||
| + | couleur = c; | ||
position = p; | position = p; | ||
vitesse = v; | vitesse = v; | ||
| − | |||
} | } | ||
| − | + | ||
| − | void | + | void bouger() |
{ | { | ||
position.add(vitesse); | position.add(vitesse); | ||
} | } | ||
| − | + | ||
void go() | void go() | ||
{ | { | ||
| − | + | bouger(); | |
rebondir(); | rebondir(); | ||
afficher(); | afficher(); | ||
} | } | ||
| + | |||
| + | abstract void afficher(); | ||
| + | |||
| + | abstract void rebondir(); | ||
| + | |||
| + | |||
} | } | ||
| Ligne 126 : | Ligne 129 : | ||
float rayon; | float rayon; | ||
| − | Balle( | + | Balle(PVector p,PVector v, color c,float r) |
{ | { | ||
| − | + | 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 | + | 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( | + | b1 = new Balle(p,v,c,r); |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
} | } | ||
| Ligne 186 : | Ligne 185 : | ||
background(255); | background(255); | ||
b1.go(); | b1.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();
}