Processing – Balle qui rebondit sur une palette

Voici le code  
float paletteY;
float paletteX;
float paletteLargeur = 75;
float paletteHauteur = 10;

float balleX;
float balleY;
float balleCote = 15;
float balleVitX = random (3, 6);
float balleVitY = random (3, 6);

void setup(){
  size(800, 600);
  
  paletteY = height - 5 * paletteHauteur;
  
  balleX = random (0, width);
  balleY = random (0, height / 2);
}

void draw(){
  background(0);
  
  paletteX = mouseX - paletteLargeur / 2;
  
  // Limitation de la palette
  if (paletteX < 0) {
    paletteX = 0;
  }
  
  // Limitation de la palette
  if (paletteX + paletteLargeur > width) {
    paletteX = width - paletteLargeur;
  }
  
  balleX = balleX + balleVitX;
  balleY = balleY + balleVitY;
  
  // Vérification pour les limites en X de la balle
  if (balleX < 0 || balleX + balleCote > width) {
    balleVitX = -balleVitX;
    
    // Si c'est la balle dépasse la gauche, je remets
    // la balle X à 0;
    if (balleX < 0) {
      balleX = 0;
    }
    
    // Si c'est la balle dépasse la droite, je remets
    // la balle X à la largeur de l'écran - la dimension
    // de la balle
    if (balleX + balleCote > width) {
      balleX = width - balleCote;
    }
  }
  
  // Vérification pour les limites en Y de la balle
  if (balleY < 0 || balleY + balleCote > height) {
    balleVitY = -balleVitY;
    
    if (balleY < 0) {
      balleY = 0;
    }
    
    // Si la balle touche le bas, on recommence la position
    // et la vitesse de celle-ci
    if (balleY + balleCote > height) {
      balleX = random (0, width);
      balleY = random (0, height / 2);
      
      balleVitX = random (3, 6);
      balleVitY = random (3, 6);
      
      // Un but est compté!!! Faire le code!
    }
  }
  
  // Je vérifie si la balle dépasse la palette en Y
  if (balleY + balleCote > paletteY) {
  
    // Ensuite, je vérifie si la balle est dans les limites X
    // de la palette
    if (balleX > paletteX && balleX < paletteX + paletteLargeur) {
      
      // Les deux conditions sont vraies, alors je change la
      // direction verticale de la balle
      balleVitY = -balleVitY;
    }
  }
  

  rect (balleX, balleY, balleCote, balleCote);
  
  rect (paletteX, paletteY, paletteLargeur, paletteHauteur);
}

Publié

dans

par

Étiquettes :

Commentaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.