Cours:Pong

De troyesGEII
Révision datée du 10 octobre 2016 à 11:19 par Bjacquot (discussion | contributions)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à : navigation, rechercher
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;
  }

}