int x;  //déclaration du x de la balle
int y;  //déclaration du y de la balle
int deplacementX; //déplacement sur l'axe X de la balle
int deplacementY; //déplacement sur l'axe Y de la balle
int nbpointJA=0;  //nombre de point de base du joueur A affiché sur le compteur
int nbpointJB=0;  //nombre de point de base du joueur B affiché sur le compteur
int yrectj2=245;  //declaration de la coordonnée sur l'axe y du palet du joueur 2
int yrectj1;      //déclaration du y du palet du rectangle du joueur 1
int xrectj1=60;   //declaration de la coordonnée sur l'axe x du palet du joueur 1
int xrectj2=540;  //declaration de la coordonnée sur l'axe x du palet du joueur 2


void setup()
{
  size(600,600);  //taille de la fenetre
  x=200;          //x de la balle avec la valeur 200
  y=200;          //x de la balle avec la valeur 200
  deplacementX=4; //attribution de la valeur 3 au déplacement sur l'axe des X de la balle  (3 : la balle commence à partir sur la droite au début de partie)
  deplacementY=-3; //attribution de la valeur -2 au déplacement sur l'axe des X de la balle (-2 : la balle commence à partir vers le haut au début de partie)

}

void draw()
{
  background(#1D5B71);  //couleur du fond
  compteur();           //fonction void décrite plus bas
  rectj1();             //fonction void décrite plus bas
  rectj2();             //fonction void décrite plus bas
  cadre();              //fonction void décrite plus bas
  bouger();             //fonction void décrite plus bas
  rebondir();           //fonction void décrite plus bas
  dessiner();           //fonction void décrite plus bas
 
  if (x<xrectj1+5 && y>yrectj1 && y<yrectj1+85)     /*si le x de la balle se situe sous le x du rectangle du joueur 1 ET SI le y de la balle se situe au dessus
  du y du rectangle du joueur 1 ET SI le y de la balle se situe en dessous du y de la fin du rectangle du joueur 1 */
  {
   deplacementX = -deplacementX;                   //le déplacement sur l'axe des X de la balle prend la valeur inverse => la balle change de direction horizontale
 }
  if (x>xrectj2-5 && y>yrectj2 && y<yrectj2+85)  /*si le x de la balle se situe sous le x du rectangle du joueur 2 ET SI le y de la balle se situe au dessus
  du y du rectangle du joueur 1 ET SI le y de la balle se situe en dessous du y de la fin du rectangle du joueur 2 */
  {
   deplacementX = -deplacementX;                  //le déplacement sur l'axe des X de la balle prend la valeur inverse => la balle change de direction horizontale
 }
 
}


void keyPressed() {
  if (keyPressed) {                     //keyPressed est la fonction utilisée si une touche du clavier est pressée
    if (key == 'z') {                   //si la touche Z est pressée :
      yrectj2=yrectj2-20;               //le palet du joueur 2 monte par rapport à la fenetre
        if(yrectj2 <= 55)               //si le y du palet du joueur 2 atteind la limite du cadre du haut :
   {
     yrectj2=yrectj2+40;                //le palet du joueur B s'immobilise
   }
    } else if (key == 's') {            //si la touche S est pressée :
      yrectj2=yrectj2+20;               //le palet du joueur 2 descend par rapport à la fenetre  
      if(yrectj2 >= 475)                //si le y du palet du joueur 2 atteind la limite du cadre du bas :
   {
     yrectj2=yrectj2-40;                //le palet du joueur 2 s'immobilise
   }
    }
  }
}


void compteur()
{
  text("pointJA",50,50);        //affiche le texte qui réprésente le compteur de point du joueur A
  text("pointJB",450,50);       //affiche le texte qui réprésente le compteur de point du joueur B
  text(nbpointJA,100,50);       //affiche la valeur qui représente le nombre de point du joueur A
  text(nbpointJB,500,50);       //affiche la valeur qui représente le nombre de point du joueur A
 
  if(nbpointJA==11 || nbpointJB==11)      //limite (11 points) des compteurs pour que un des 2 joueurs gagne la partie
  {
    deplacementX=0;                      //si la limite de point est atteinte , le déplacement sur l'axe des X de la balle devient nul : la balle s'arrete
    deplacementY=0;                      //Pareil pour le déplacement sur l'axe des Y pour la balle
    text("FINI",300,300);                //ce texte s'affiche en fin de partie
  }
}


void rectj1(){
 
  rect(xrectj1,yrectj1,4,80);       //coordonnées et valeurs palet du joueur 1
}

void rectj2(){
 
  rect(xrectj2,yrectj2,4,80);      //coordonnées et valeures palet du joueur 2
}

 

 

void cadre()
{
  rect(25,60,550,1);     //ligne de limite du cadre du haut     
  rect(25,550,550,1);    //ligne de limite du cadre du bas
  rect(25,60,1,491);     //ligne de limite du cadre de gauche
  rect(575,60,1,491);    //ligne de limite du cadre de droite
}

void bouger()
{
  x=x+deplacementX;   //permet d'ajouter au x de la balle la valeur de son déplacement sur l'axe des X
  y=y+deplacementY;   //permet d'ajouter au x de la balle la valeur de son déplacement sur l'axe des X
  yrectj1 = (mouseY); //le rectangle du palet du joueur 1 se déplace sur l'axe des Y (donc de bas en haut) grâce au curseur de la souris
}


void rebondir()
{
  if (x > 570 && deplacementX >0)  {deplacementX = -deplacementX; nbpointJA=nbpointJA+1;}    /*si le x de la balle est supérieur à 570(la ligne du cadre de droite qui représente la ligne de but du joueur 2)
  alors la balle se déplace dans son sens inverse et le joueur A gagne un point dans son compteur*/
 
  if (x < 30 && deplacementX < 0)  {deplacementX = -deplacementX; nbpointJB=nbpointJB+1;}    /*si le x de la balle est inférieure à 30(la ligne du cadre de gauche qui représente la ligne de but du joueur 1)
  alors la balle se déplace dans son sens inverse (:elle rebondit) et le joueur B gagne un point dans son compteur*/
 
  if( (y > 545 && deplacementY >0) || (y < 70 && deplacementY < 0)) {deplacementY = -deplacementY; }  /*si le y de la balle atteint 545(la ligne de limite du cadre du bas) ou si elle atteint 70(la ligne de limite
  du cadre du haut) alors la balle se déplace dans son sens inverse : elle rebondit*/
}

void dessiner()
{
  ellipse(x,y,10,10);  //ellipse qui représente la balle
}

Contact