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();
}