Etat du Code:

mis à jour le 08/02/2016
 

int [] monTableauVitesse = new int [60]; //déclaration d'un tableau contenant 60 valeurs de v
int x = 370; //position initiale en x du tireur
int y = 530; //position initiale en y du tireur
int z = 20; //nombre de balles
int low = 0; // position la plus basse ( en y )
int compteur = 0; // compteur de cibles détruites
int Total = 0; // score total initialisé à 0
int Niveaux = 1;
 
int s = 0 ; //  déclaration d'une variable nommée s (seconde)
//int m = 0 ; // déclaration d'une variable nommée m (minute)
 
boolean tir = false;
 
 
 
void setup() {
 
  size(800, 600); //taille de la fenêtre
  frameRate(20); // nombre d'execution du draw par seconde
  textSize(20); // taille du texte
 
  vaisseau = loadImage("vaisseau.png");
  espace = loadImage("espace.jpg");
  invaders = loadImage("invaders.png");
 
  minim = new Minim(this);
  SI = minim.loadFile("SI.mp3");
  Tir = minim.loadFile("Tir.mp3");
  Hit = minim.loadFile("Hit.mp3");
 
  for (int i=0; i<z; i=i+1) 
  { 
    monTableauY[i] = (int)random(20, 300);
    monTableauR[i] = (int)random(15, 20);
    monTableauVitesse[i] = (int)random(1, 10);
  }
}
 
 
void draw() {
 
  image(espace, 0, 0, width, height);
 
 
  dessinerTireur(); 
  deplacerTireur();
  dessinerCibles();
  deplacerCibles();
  dessinerTir();
  detruireCibles();
  afficherScore();
  afficherNiveaux();
  niveaux();
  modeSouris();
  modeClavier();
  menu();
  chronometre();
  SI.play();
  win();
  gameOver();
}
 
 
void keyPressed() {
 
  if (keyCode == LEFT) {
 
    x=x-10;
  } else {
    if (keyCode == RIGHT) {
 
      x=x+10;
    } else {
      if (key == ' ' ) {
        tir = true;
        //Tir.play();
        //Tir.rewind();
        println("true");
      }
    }
  }
}
 
 
 
void keyReleased() {
  if ( key == ' ') {
    tir = false;
    println("false");
  }
}
 
 
 
void dessinerTireur() {
  image(vaisseau, x, y, 70, 70);
}
 
void deplacerTireur() {
  if ( x > 730) {
    x = 730;
  }
  if ( x < 10) {
    x = 25;
  }
}
 
void dessinerCibles() {
  for (int i=0; i<z; i=i+1)
  { 
    fill(#FFFCFC);
    image(invaders, monTableauX[i], monTableauY[i], monTableauR[i], monTableauR[i]);
  }
}
 
void deplacerCibles() {
  for (int i=0; i<z; i=i+1)
  { 
    monTableauX[i] =  monTableauX[i]+ monTableauVitesse[i];
    if (monTableauX[i] > 780 ) {
      monTableauVitesse[i] = - monTableauVitesse[i];
      monTableauY[i] = monTableauY[i] +30;
    }
    if (monTableauX[i] < 1) {
      monTableauVitesse[i] = - monTableauVitesse[i];
      monTableauY[i] = monTableauY[i] +30;
    }
  }
}
 
 
void dessinerTir() { 
  if (tir ==true) {
    rect(x+33, low, 2, 532);
  }
}
 
void detruireCibles() {
  low = 0;
  for (int i=0; i<z; i=i+1)
  {
    if (tir==true) {
      if (monTableauX[i]<x+25 && monTableauX[i]>x+10) {
        monTableauX[i] = -60;
        compteur = compteur + 1;
        Total = Total + 1;
        println(z);
        if ( monTableauY[i] > low) {
          low = monTableauY[i];
        }
        Hit.play();
        Hit.rewind();
      }
    }
  }
}
 
void afficherScore() {
  text("SCORE PAR NIVEAU:" +compteur, 570, 575, 400, 200);
  text("Score Total:" +Total, 5, 575, 200, 100);
  fill(#FFFFFF);
  text("Space Invaders", 5, 5, 200, 100);
}
void afficherNiveaux() {
  text("Niveau:" +Niveaux, 350, 5, 200, 200);
 
void niveaux() {
  if (compteur == 20) {
    compteur = 0;
    Niveaux= 2;
    z = 40;
    println(z);
    for (int i=0; i<z; i=i+1) 
    { 
      monTableauY[i] = (int)random(20, 300);
      monTableauR[i] =  20; 
      monTableauVitesse[i] = (int)random(5, 12);
      dessinerCibles();
      deplacerCibles();
    }
  }
}
 
 
void modeSouris() {
  if (key == 's') {
    x = mouseX;
    if ( mousePressed ) {
      tir = true;
    } else {
      tir = false;
    }
  }
}
 
void modeClavier() {
  if (key == 'c') {
    keyPressed();
    keyReleased();
  }
}
 
 
void menu ()
{
 
  rect ( 700, 5, 90, 20);
  fill (#0004BF);
  text ("quitter", 710, 22);
  if (mousePressed)
  {
    if (mouseX > 700 && mouseX < 790)
    {
      if (mouseY > 5 && mouseY < 25)
      {
        exit(); //ferme le programme
      }
    }
  }
}
 
void chronometre() {
 
  s = millis()/1000;
  fill(#FFFFFF);
  text("Temps:"+s, 530, 5, 200, 100);
}
 
void win() {
  if ( Total == 40) {
    fill(#F53B0C);
    text("CONGRATULATIONS YOU WIN", 260, 270, 400, 200);
    tir = false;
  }
}
 
void gameOver() {
  for (int i=0; i<z; i=i+1)
  {
    if (s >= 90 ) { // supérieur ou égal = 1,30min
      fill(#0C5BF5);
      text("GAME OVER EARTH WAS INVADED!!", 260, 270, 400, 200);
      tir = false;
      monTableauVitesse[i] = monTableauVitesse[i] - monTableauVitesse[i];
      println(monTableauVitesse[i]);
    }
  }
}
 
void stop() {
  //Tir.close();
  minim.stop();
  super.stop();
}