Modification du samedi 20/03/21 (Ani d'Arthaud)

This commit is contained in:
Stève Oriol 2021-03-20 13:15:51 +01:00
parent c414c8c96c
commit 457ae004c4
3 changed files with 413 additions and 402 deletions

View File

@ -44,7 +44,7 @@ class Misile {
} }
void tomber() { void tomber() {
y += 14; //ont peut changer cette variable(le nombre de la variable)pour changer la vitesse des missiles enemis. y += 4; //ont peut changer cette variable(le nombre de la variable)pour changer la vitesse des missiles enemis.
} }
void affiche_et_mets_a_jour_le_missile() { void affiche_et_mets_a_jour_le_missile() {

View File

@ -4,9 +4,9 @@ class Alien2 {
int blob, blob2; int blob, blob2;
int x,y; int x,y;
int enemypv = 2; int enemypv;
boolean show; boolean show;
double random; int randomy,randomx;
int NUMEROXEPLO = 0; int NUMEROXEPLO = 0;
PImage enemy_explo; PImage enemy_explo;
@ -21,15 +21,17 @@ class Alien2 {
void alea_bouge(){ void alea_bouge(){
random = Math.random()*(0-20)-10; randomy = (int) random(0,900);
frameRate(500); randomx = (int) random(0,1600);
if (frameCount % 500 == 0) { frameRate(600);
x = blob; if (frameCount % 600 == 0) {
y = blob; x = randomx;
println ("blob = "+blob); y = randomy;
println ("random = "+randomy);
} }
} }
void apparaitre() { void apparaitre() {
@ -58,7 +60,7 @@ class Alien2 {
// on luis enleve un point de vie // on luis enleve un point de vie
enemypv = enemypv - 1; enemypv = enemypv - 1;
y = y - 20; y = y - 50;
//suprime le missile //suprime le missile
lancermisile = false; lancermisile = false;
@ -76,18 +78,22 @@ class Alien2 {
y = y - 20; y = y - 20;
} }
if ( nombreEnemiReste == 0 && boss_pv == 0) {
}
//le mechant disparait si il a plus de vie : //le mechant disparait si il a plus de vie :
if ( enemypv == 0 ) { if ( enemypv == 0 ) {
show = false; show = false;
} }
} }
public double random(){ //public int random(){
random = Math.random()*(10-4); // random = (int) Math.random()*(10-4);
return random; // return random;
} //}
double cooldown_fonce = random(); int cooldown_fonce = (int)random(10);
/* /*
//le if doit etre dans une fonction ou une class ou void ... //le if doit etre dans une fonction ou une class ou void ...
@ -103,6 +109,7 @@ class Alien2 {
void affiche_et_mets_a_jour_les_mechants() { void affiche_et_mets_a_jour_les_mechants() {
verifiercollisions(); verifiercollisions();
apparaitre(); apparaitre();
alea_bouge();
} }
} }

View File

@ -1,387 +1,391 @@
// ajouter le son ? // ajouter le son ?
boolean son = true; boolean son = true;
boolean boss_start = false; boolean boss_start = false;
// ----------------------- \\ // ----------------------- \\
// Importation librairies pour la gestion du sons // Importation librairies pour la gestion du sons
import processing.sound.*; import processing.sound.*;
SoundFile sonLancemissile; SoundFile sonLancemissile;
SoundFile sonExposion; SoundFile sonExposion;
SoundFile sonCollision; SoundFile sonCollision;
SoundFile sonLaser_boss; SoundFile sonLaser_boss;
boolean test = false; boolean test = false;
int largeur = 1600; int largeur = 1600;
int hauteur = 900; int hauteur = 900;
PImage space, img_ship, misile, imgGameover, imgWin, imgboss1, laserboss1; PImage space, img_ship, misile, imgGameover, imgWin, imgboss1, laserboss1;
String misileMechant1 = "data/images/misile - mechant.png"; String misileMechant1 = "data/images/misile - mechant.png";
int x = largeur/2; int x = largeur/2;
int y = hauteur-100; int y = hauteur-100;
int xm = x; int xm = x;
int ym = y; int ym = y;
int timerGameOver = 1500; // milliseconds d'attente avant affichage "Gameover" int timerGameOver = 1500; // milliseconds d'attente avant affichage "Gameover"
int timer = 0; int timer = 0;
int win; int win;
float time; float time;
boolean lancermisile = false; boolean lancermisile = false;
String touchePresse = null; String touchePresse = null;
//int nombreEnemiRestek = nombreEnemik; //int nombreEnemiRestek = nombreEnemik;
Ship ship; Ship ship;
boolean[] level = new boolean[3]; boolean[] level = new boolean[3];
int nombreEnemi = 20; int nombreEnemi = 20;
int nombreEnemik = 20; int nombreEnemik = 20;
int nombreEnemiReste = nombreEnemi; int nombreEnemiReste = nombreEnemi;
Alien [] a = new Alien[nombreEnemi]; Alien [] a = new Alien[nombreEnemi];
Misile [] b = new Misile[nombreEnemi]; Misile [] b = new Misile[nombreEnemi];
Alien2 [] c = new Alien2[1]; Alien2 [] c = new Alien2[3];
//Etat de deplacement: 0 = aucun deplacement en cours //Etat de deplacement: 0 = aucun deplacement en cours
int moveXp = 0; // 1 si deplacement vers le bas int moveXp = 0; // 1 si deplacement vers le bas
int moveXn = 0; // 1 si deplacement vers le haut int moveXn = 0; // 1 si deplacement vers le haut
int moveYp = 0; // 1 si deplacement vers la droite int moveYp = 0; // 1 si deplacement vers la droite
int moveYn = 0; // 1 si deplacement vers la gauche int moveYn = 0; // 1 si deplacement vers la gauche
int moveBoost = 1; int moveBoost = 1;
boolean pause = false; boolean pause = false;
void setup() { void setup() {
stroke(#000000); stroke(#000000);
strokeWeight(1); strokeWeight(1);
textAlign(LEFT, TOP); textAlign(LEFT, TOP);
textSize(12); textSize(12);
size(1600, 900); size(1600, 900);
imageMode(CENTER); imageMode(CENTER);
//là, ça charge les images dans leurres varibles //là, ça charge les images dans leurres varibles
space = loadImage("data/images/space.jpg"); space = loadImage("data/images/space.jpg");
img_ship = loadImage("data/images/redfighter_200x200.png"); img_ship = loadImage("data/images/redfighter_200x200.png");
misile = loadImage("data/images/misile.png"); misile = loadImage("data/images/misile.png");
//2 pour le skin 2 //2 pour le skin 2
imgGameover = loadImage("data/images/gameover.png"); imgGameover = loadImage("data/images/gameover.png");
imgWin = loadImage("data/images/Win_game.png"); imgWin = loadImage("data/images/Win_game.png");
imgboss1 = loadImage("data/images/vaiseau_enemi.png"); imgboss1 = loadImage("data/images/vaiseau_enemi.png");
laserboss1 = loadImage("data/images/laser_boss1.png"); laserboss1 = loadImage("data/images/laser_boss1.png");
//on crée le ship //on crée le ship
ship = new Ship(x, y, 3, img_ship); ship = new Ship(x, y, 3, img_ship);
//on crée des ennemis //on crée des ennemis
for (int i = 0; i<nombreEnemi; i++) { for (int i = 0; i<nombreEnemi; i++) {
int j; int j;
int k; int k;
if (i > 9) { if (i > 9) {
j = i-10; j = i-10;
k =2; k =2;
} else { } else {
j = i; j = i;
k =1; k =1;
} }
a[i] = new Alien (100+(j*150), k*100, 3, "mechant_rouge_150x150.png"); a[i] = new Alien (100+(j*150), k*100, 3, "mechant_rouge_150x150.png");
//a[i] = new Alien (100+(j*150), k*100, 3, "mechant_tres_mechant150x150.png"); //a[i] = new Alien (100+(j*150), k*100, 3, "mechant_tres_mechant150x150.png");
} }
c[0] = new Alien2(800,350,10,"mechant_tres_mechant150x150.png"); c[0] = new Alien2(800,350,20,"mechant_tres_mechant150x150.png");
c[1] = new Alien2(1200,350,20,"mechant_tres_mechant150x150.png");
//on crée des misiles c[2] = new Alien2(400,350,20,"mechant_tres_mechant150x150.png");
for (int i = 0; i<nombreEnemi; i++) {
int j; //on crée des misiles
int k; for (int i = 0; i<nombreEnemi; i++) {
if (i > 9) { int j;
j = i-10; int k;
k =2; if (i > 9) {
} else { j = i-10;
j = i; k =2;
k =1; } else {
} j = i;
b[i] = new Misile (100+(j*150), k*100, misileMechant1, time); k =1;
} }
b[i] = new Misile (100+(j*150), k*100, misileMechant1, time);
// Sons }
if (son) {
sonLancemissile = new SoundFile(this, "data/sons/lancemissile.mp3"); // Sons
sonExposion = new SoundFile(this, "data/sons/SFB-explosion2.mp3"); if (son) {
sonCollision = new SoundFile(this, "data/sons/collision avec le vaisseau.mp3"); sonLancemissile = new SoundFile(this, "data/sons/lancemissile.mp3");
sonLaser_boss = new SoundFile(this, "data/sons/Laser_boss.mp3"); sonExposion = new SoundFile(this, "data/sons/SFB-explosion2.mp3");
} sonCollision = new SoundFile(this, "data/sons/collision avec le vaisseau.mp3");
sonLaser_boss = new SoundFile(this, "data/sons/Laser_boss.mp3");
//Vitesse : frame par seconde }
frameRate(60);
} //Vitesse : frame par seconde
frameRate(60);
void draw() { }
// if ( nombreEnemiReste == 0 && ship.pv > 0) { void draw() {
//
// // if ( nombreEnemiReste == 0 && ship.pv > 0) {
// } //
//debug: //
//println(nombreEnemiReste); // }
//debug:
//println(nombreEnemiReste);
miseAJourDuDeplacement();
//Affiche l'image de fond (l'espace) miseAJourDuDeplacement();
background(space);
//Affiche l'image de fond (l'espace)
// Si un missile du ship est en cours (actif) background(space);
if (lancermisile) {
//on le fait avencer // Si un missile du ship est en cours (actif)
ym = ym - 20; if (lancermisile) {
// Si le missile sort en haut de l'écran //on le fait avencer
if (ym < 0) { ym = ym - 20;
ym = y; // Si le missile sort en haut de l'écran
xm = x; if (ym < 0) {
lancermisile = false; ym = y;
} xm = x;
// Affiche l'image du missile lancermisile = false;
image(misile, xm, ym); }
} else { // Affiche l'image du missile
//Sinon (missile non actif) image(misile, xm, ym);
//on le affiche en dessous du vaiseau si encore vivant } else {
if (ship.show) { //Sinon (missile non actif)
ym = y; //on le affiche en dessous du vaiseau si encore vivant
xm = x; if (ship.show) {
} ym = y;
} xm = x;
}
// Fait une boucle sur tout le tableau d'ennemies }
for ( int i = 0; i<nombreEnemi; i++) {
//fait la mise a jour du missile que si l'ennemi est encore vivant ou missile en cours // Fait une boucle sur tout le tableau d'ennemies
if (a[i].show || b[i].show) { for ( int i = 0; i<nombreEnemi; i++) {
b[i].affiche_et_mets_a_jour_le_missile(); //fait la mise a jour du missile que si l'ennemi est encore vivant ou missile en cours
} if (a[i].show || b[i].show) {
//fait la mise a jour du mechant que si il est encore vivant b[i].affiche_et_mets_a_jour_le_missile();
if (a[i].NUMEROXEPLO < 50) { }
a[i].affiche_et_mets_a_jour_les_mechants(); //fait la mise a jour du mechant que si il est encore vivant
} if (a[i].NUMEROXEPLO < 50) {
} a[i].affiche_et_mets_a_jour_les_mechants();
}
// met a jour les méchants très méchants }
c[0].affiche_et_mets_a_jour_les_mechants();
// met a jour les méchants très méchants
c[0].affiche_et_mets_a_jour_les_mechants();
// Affiche l'image du vaiseau c[1].affiche_et_mets_a_jour_les_mechants();
ship.affiche_et_mets_a_jour_le_ship(x, y); c[2].affiche_et_mets_a_jour_les_mechants();
//Affiche le boss Du niveau 1 // Affiche l'image du vaiseau
if ( nombreEnemiReste == 0 && boss_pv > 0) { ship.affiche_et_mets_a_jour_le_ship(x, y);
// image(imgWin, largeur/2, hauteur/2);
if (boss_start == false) {
boss_start = true; //Affiche le boss Du niveau 1
boss_time = millis()/1000; if ( nombreEnemiReste == 0 && boss_pv > 0) {
} // image(imgWin, largeur/2, hauteur/2);
boss(); if (boss_start == false) {
} boss_start = true;
boss_time = millis()/1000;
// Mise à jour du texte de l'écran : }
text("frame: " + frameCount, 10, 20); boss();
text("Time: " + millis() / 1000, 10, 35); }
text("PV: " + ship.pv, width - 60, 20);
// Mise à jour du texte de l'écran :
if (ship.pv == - 0) { text("frame: " + frameCount, 10, 20);
// Installation du timer text("Time: " + millis() / 1000, 10, 35);
if (timer == 0) timer = millis() + timerGameOver; text("PV: " + ship.pv, width - 60, 20);
// Vérification du temps par rapport au timer if (ship.pv == - 0) {
//println(millis() + " / timer : " + timer); // Installation du timer
if ( millis() > timer ) { if (timer == 0) timer = millis() + timerGameOver;
image(imgGameover, largeur/2, hauteur/2);
println("GAME OVER"); // Vérification du temps par rapport au timer
noLoop(); //println(millis() + " / timer : " + timer);
if ( millis() > timer ) {
} image(imgGameover, largeur/2, hauteur/2);
} println("GAME OVER");
noLoop();
//Affiche le "WIN" Du niveau 1
if ( nombreEnemiReste == 0 && boss_pv == 0) { }
//image(imgWin, largeur/2, hauteur/2); }
}
//Affiche le "WIN" Du niveau 1
if ( nombreEnemiReste == 0 && boss_pv == 0) {
//image(imgWin, largeur/2, hauteur/2);
}
if ( nombreEnemiReste == 0 && boss_pv == 0) {
//on load la deuxièmme vague de vaisseau
//on crée des ennemis
// Fait une boucle sur tout le tableau d'ennemies
//for ( int i = 0; i<nombreEnemi; i++) { if ( nombreEnemiReste == 0 && boss_pv == 0) {
// //on ressucite les ennemis avec 4 pv //on load la deuxièmme vague de vaisseau
// a[i].enemypv = 4; //on crée des ennemis
// nombreEnemiReste = nombreEnemi; // Fait une boucle sur tout le tableau d'ennemies
//} //for ( int i = 0; i<nombreEnemi; i++) {
//on crée des ennemis // //on ressucite les ennemis avec 4 pv
// a[i].enemypv = 4;
// // Fait une boucle sur tout le tableau d'ennemies // nombreEnemiReste = nombreEnemi;
//for ( int i = 0; i<nombreEnemi; i++) { //}
// //fait la mise a jour du missile que si l'ennemi est encore vivant ou missile en cours //on crée des ennemis
// if (a[i].show || b[i].show) {
// b[i].affiche_et_mets_a_jour_le_missile(); // // Fait une boucle sur tout le tableau d'ennemies
// } //for ( int i = 0; i<nombreEnemi; i++) {
// //fait la mise a jour du mechant que si il est encore vivant // //fait la mise a jour du missile que si l'ennemi est encore vivant ou missile en cours
// if (a[i].NUMEROXEPLO < 50) { // if (a[i].show || b[i].show) {
// a[i].affiche_et_mets_a_jour_les_mechants(); // b[i].affiche_et_mets_a_jour_le_missile();
// } // }
//} // //fait la mise a jour du mechant que si il est encore vivant
// if (a[i].NUMEROXEPLO < 50) {
//for (int i = 0; i<nombreEnemi; i++) { // a[i].affiche_et_mets_a_jour_les_mechants();
// int j; // }
// int k; //}
// if (i > 9) {
// j = i-10; //for (int i = 0; i<nombreEnemi; i++) {
// k =2; // int j;
// } else { // int k;
// j = i; // if (i > 9) {
// k =1; // j = i-10;
// } // k =2;
// a[i] = new Alien (100+(j*150), k*100, 3, mechant); // } else {
//} // j = i;
// k =1;
////on crée des misiles // }
//for (int i = 0; i<nombreEnemi; i++) { // a[i] = new Alien (100+(j*150), k*100, 3, mechant);
// int j; //}
// int k;
// if (i > 9) { ////on crée des misiles
// j = i-10; //for (int i = 0; i<nombreEnemi; i++) {
// k =2; // int j;
// } else { // int k;
// j = i; // if (i > 9) {
// k =1; // j = i-10;
// } // k =2;
// b[i] = new Misile (100+(j*150), k*100, misileMechant1, time); // } else {
//} // j = i;
} // k =1;
// }
// // Fait une boucle sur tout le tableau d'ennemies // b[i] = new Misile (100+(j*150), k*100, misileMechant1, time);
//for ( int i = 0; i<nombreEnemi; i++) { //}
// //fait la mise a jour du missile que si l'ennemi est encore vivant ou missile en cours }
// if (a[i].show || b[i].show) {
// b[i].affiche_et_mets_a_jour_le_missile(); // // Fait une boucle sur tout le tableau d'ennemies
// } //for ( int i = 0; i<nombreEnemi; i++) {
// //fait la mise a jour du mechant que si il est encore vivant // //fait la mise a jour du missile que si l'ennemi est encore vivant ou missile en cours
// if (a[i].NUMEROXEPLO < 50) { // if (a[i].show || b[i].show) {
// a[i].affiche_et_mets_a_jour_les_mechants(); // b[i].affiche_et_mets_a_jour_le_missile();
// } // }
//} // //fait la mise a jour du mechant que si il est encore vivant
// if (a[i].NUMEROXEPLO < 50) {
// a[i].affiche_et_mets_a_jour_les_mechants();
// }
//}
//if (nombreEnemi <= 0){
//test = true;
//}
//c[1] = new Alien2();
//if (nombreEnemi <= 0){
} //test = true;
//}
//ça verifie tout le tenps si une touche utilise est preser //c[1] = new Alien2();
void keyPressed() {
}
if (key == 'f' ) { touchePresse = "f"; } //ça verifie tout le tenps si une touche utilise est preser
if (key == 'z' && touchePresse == "f") { void keyPressed() {
//on tue tous les ennemis
for (int i = 0; i<nombreEnemi; i++) {
a[i].enemypv = 0; if (key == 'f' ) { touchePresse = "f"; }
// nombreEnemiRestek = 0; if (key == 'z' && touchePresse == "f") {
boss_pv = 1; //on tue tous les ennemis
} for (int i = 0; i<nombreEnemi; i++) {
a[i].enemypv = 0;
touchePresse = null; // nombreEnemiRestek = 0;
} boss_pv = 1;
}
if (key == ' ' && ship.show) {
lancermisile = true; touchePresse = null;
//Joue le son... }
if (son && ym == y) sonLancemissile.play();
} if (key == ' ' && ship.show) {
lancermisile = true;
//pour mettre en pause/continuer //Joue le son...
if (key == 'p') { if (son && ym == y) sonLancemissile.play();
pause = !pause; }
//pour mettre en pause/continuer
//Met en pause ou countinue if (key == 'p') {
if (pause) noLoop(); pause = !pause;
else loop();
}
//Met en pause ou countinue
if (pause) noLoop();
if (key == 'z' || key == 'Z' || (key == CODED && keyCode == UP) ) { else loop();
moveYn = 1; }
}
if (key == 's' || key == 'S' || (key == CODED && keyCode == DOWN) ) {
moveYp = 1; if (key == 'z' || key == 'Z' || (key == CODED && keyCode == UP) ) {
} moveYn = 1;
if (key == 'q' || key == 'Q' || (key == CODED && keyCode == LEFT) ) { }
moveXn = 1; if (key == 's' || key == 'S' || (key == CODED && keyCode == DOWN) ) {
} moveYp = 1;
if (key == 'd' || key == 'D' || (key == CODED && keyCode == RIGHT) ) { }
moveXp = 1; if (key == 'q' || key == 'Q' || (key == CODED && keyCode == LEFT) ) {
} moveXn = 1;
if (keyCode == SHIFT || key == 'Z' || key == 'Q' || key == 'S' || key == 'D') { }
moveBoost = 2; if (key == 'd' || key == 'D' || (key == CODED && keyCode == RIGHT) ) {
} moveXp = 1;
}
} if (keyCode == SHIFT || key == 'Z' || key == 'Q' || key == 'S' || key == 'D') {
moveBoost = 2;
//ça verifie tout le tenps si une touche utilise est relacher }
void keyReleased() {
}
if (key == 'z' || key == 'Z' || (key == CODED && keyCode == UP) ) {
moveYn = 0; //ça verifie tout le tenps si une touche utilise est relacher
} void keyReleased() {
if (key == 's' || key == 'S' || (key == CODED && keyCode == DOWN) ) {
moveYp = 0; if (key == 'z' || key == 'Z' || (key == CODED && keyCode == UP) ) {
} moveYn = 0;
if (key == 'q' || key == 'Q' || (key == CODED && keyCode == LEFT) ) { }
moveXn = 0; if (key == 's' || key == 'S' || (key == CODED && keyCode == DOWN) ) {
} moveYp = 0;
if (key == 'd' || key == 'D' || (key == CODED && keyCode == RIGHT) ) { }
moveXp = 0; if (key == 'q' || key == 'Q' || (key == CODED && keyCode == LEFT) ) {
} moveXn = 0;
if (keyCode == SHIFT || key == 'Z' || key == 'Q' || key == 'S' || key == 'D') { }
moveBoost = 1; if (key == 'd' || key == 'D' || (key == CODED && keyCode == RIGHT) ) {
} moveXp = 0;
}
} if (keyCode == SHIFT || key == 'Z' || key == 'Q' || key == 'S' || key == 'D') {
moveBoost = 1;
//on calcule et on met a jour les coordonnées du vaisau }
void miseAJourDuDeplacement() {
}
int deplacement = 10*moveBoost;
//on calcule et on met a jour les coordonnées du vaisau
if (moveYp - moveYn == -1) { void miseAJourDuDeplacement() {
y = y - deplacement;
if (y < 100) y = 100; int deplacement = 10*moveBoost;
}
if (moveYp - moveYn == -1) {
if (moveYp - moveYn == 1) { y = y - deplacement;
y = y + deplacement; if (y < 100) y = 100;
if (y > height - 100 ) y = height - 100; }
}
if (moveYp - moveYn == 1) {
if (moveXp - moveXn == -1) { y = y + deplacement;
x = x - deplacement; if (y > height - 100 ) y = height - 100;
if (x < 100) x = 100; }
}
if (moveXp - moveXn == -1) {
if (moveXp - moveXn == 1) { x = x - deplacement;
x = x+ deplacement; if (x < 100) x = 100;
if (x > width - 100 ) x = width - 100; }
}
} if (moveXp - moveXn == 1) {
x = x+ deplacement;
//Truc a faire à la fin... if (x > width - 100 ) x = width - 100;
void stop() { }
} }
//Truc a faire à la fin...
void stop() {
}