float posBalleX,posBalleY,vitesseBalleX,vitesseBalleY;
float posRaquetteGauche;
final float rayonBalle=15;
final float tailleRaquette=100;
final float largeurRaquette=30;
final float decalageRaquette=50;
void settings()
{
size(800,600);
}
void setup()
{
posBalleX=width/2; posBalleY=height/2;
vitesseBalleX=-10; vitesseBalleY=1;
}
void draw()
{
deplacer();
rebondir();
rebondirRaquette();
afficher();
perdu();
}
void deplacer()
{
posBalleX = posBalleX+vitesseBalleX;
posBalleY = posBalleY+vitesseBalleY;
posRaquetteGauche=mouseY;
if ( posRaquetteGauche>(height-tailleRaquette) ) posRaquetteGauche=height-tailleRaquette;
}
void afficher()
{
background(0);
fill(255);
ellipse(posBalleX,posBalleY,2*rayonBalle,2*rayonBalle);
fill(255,0,0);
rect(decalageRaquette,posRaquetteGauche,largeurRaquette,tailleRaquette);
}
void rebondir()
{
// mur droit
if ( (posBalleX+rayonBalle) >= width ) vitesseBalleX = -vitesseBalleX;
// mur bas
if ( (posBalleY+rayonBalle) >= height ) vitesseBalleY = -vitesseBalleY;
// mur haut
if ( (posBalleY-rayonBalle) <= 0 ) vitesseBalleY = -vitesseBalleY;
}
void rebondirRaquette()
{
if ( (posBalleX-rayonBalle)<=(decalageRaquette+largeurRaquette) &&
(posBalleX-rayonBalle)>=(decalageRaquette+largeurRaquette+vitesseBalleX) )
{
if ( (posBalleY>posRaquetteGauche) &&
(posBalleY<(posRaquetteGauche+tailleRaquette)) )
vitesseBalleX = -vitesseBalleX;
}
}
void perdu()
{
// mur gauche
if ( (posBalleX-rayonBalle) <= 0 ) {
posBalleX = width/2;
posBalleY = height/2;
}
}