Cours:BallePOO : Différence entre versions
| 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() | ||
{ | { | ||
| − | + | background(255); | |
| − | + | 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();
}