Modification du samedi 13/03/21

This commit is contained in:
Stève Oriol 2021-03-13 15:32:05 +01:00
parent 105520fec0
commit c414c8c96c
2 changed files with 403 additions and 391 deletions

View File

@ -1,9 +1,8 @@
//ici il faut faire un enemie qui te fonce dessus //ici il faut faire un enemie qui bouge
class Alien2 { class Alien2 {
int blob, blob2;
int x,y; int x,y;
int enemypv = 2; int enemypv = 2;
boolean show; boolean show;
@ -19,6 +18,19 @@ class Alien2 {
enemypv = pv; enemypv = pv;
} }
void alea_bouge(){
random = Math.random()*(0-20)-10;
frameRate(500);
if (frameCount % 500 == 0) {
x = blob;
y = blob;
println ("blob = "+blob);
}
}
void apparaitre() { void apparaitre() {
//affiche l'anime de explosion : //affiche l'anime de explosion :
@ -71,7 +83,7 @@ class Alien2 {
} }
public double random(){ public double random(){
random = Math.random()*(10-3); random = Math.random()*(10-4);
return random; return random;
} }

View File

@ -1,387 +1,387 @@
// 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[1];
//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,10,"mechant_tres_mechant150x150.png");
//on crée des misiles //on crée des misiles
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;
} }
b[i] = new Misile (100+(j*150), k*100, misileMechant1, time); b[i] = new Misile (100+(j*150), k*100, misileMechant1, time);
} }
// Sons // Sons
if (son) { if (son) {
sonLancemissile = new SoundFile(this, "data/sons/lancemissile.mp3"); sonLancemissile = new SoundFile(this, "data/sons/lancemissile.mp3");
sonExposion = new SoundFile(this, "data/sons/SFB-explosion2.mp3"); sonExposion = new SoundFile(this, "data/sons/SFB-explosion2.mp3");
sonCollision = new SoundFile(this, "data/sons/collision avec le vaisseau.mp3"); sonCollision = new SoundFile(this, "data/sons/collision avec le vaisseau.mp3");
sonLaser_boss = new SoundFile(this, "data/sons/Laser_boss.mp3"); sonLaser_boss = new SoundFile(this, "data/sons/Laser_boss.mp3");
} }
//Vitesse : frame par seconde //Vitesse : frame par seconde
frameRate(60); frameRate(60);
} }
void draw() { void draw() {
// if ( nombreEnemiReste == 0 && ship.pv > 0) { // if ( nombreEnemiReste == 0 && ship.pv > 0) {
// //
// //
// } // }
//debug: //debug:
//println(nombreEnemiReste); //println(nombreEnemiReste);
miseAJourDuDeplacement(); miseAJourDuDeplacement();
//Affiche l'image de fond (l'espace) //Affiche l'image de fond (l'espace)
background(space); background(space);
// Si un missile du ship est en cours (actif) // Si un missile du ship est en cours (actif)
if (lancermisile) { if (lancermisile) {
//on le fait avencer //on le fait avencer
ym = ym - 20; ym = ym - 20;
// Si le missile sort en haut de l'écran // Si le missile sort en haut de l'écran
if (ym < 0) { if (ym < 0) {
ym = y; ym = y;
xm = x; xm = x;
lancermisile = false; lancermisile = false;
} }
// Affiche l'image du missile // Affiche l'image du missile
image(misile, xm, ym); image(misile, xm, ym);
} else { } else {
//Sinon (missile non actif) //Sinon (missile non actif)
//on le affiche en dessous du vaiseau si encore vivant //on le affiche en dessous du vaiseau si encore vivant
if (ship.show) { if (ship.show) {
ym = y; ym = y;
xm = x; xm = x;
} }
} }
// Fait une boucle sur tout le tableau d'ennemies // Fait une boucle sur tout le tableau d'ennemies
for ( int i = 0; i<nombreEnemi; i++) { 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 la mise a jour du missile que si l'ennemi est encore vivant ou missile en cours
if (a[i].show || b[i].show) { if (a[i].show || b[i].show) {
b[i].affiche_et_mets_a_jour_le_missile(); b[i].affiche_et_mets_a_jour_le_missile();
} }
//fait la mise a jour du mechant que si il est encore vivant //fait la mise a jour du mechant que si il est encore vivant
if (a[i].NUMEROXEPLO < 50) { if (a[i].NUMEROXEPLO < 50) {
a[i].affiche_et_mets_a_jour_les_mechants(); a[i].affiche_et_mets_a_jour_les_mechants();
} }
} }
// met a jour les méchants très méchants // met a jour les méchants très méchants
c[0].affiche_et_mets_a_jour_les_mechants(); c[0].affiche_et_mets_a_jour_les_mechants();
// Affiche l'image du vaiseau // Affiche l'image du vaiseau
ship.affiche_et_mets_a_jour_le_ship(x, y); ship.affiche_et_mets_a_jour_le_ship(x, y);
//Affiche le boss Du niveau 1 //Affiche le boss Du niveau 1
if ( nombreEnemiReste == 0 && boss_pv > 0) { if ( nombreEnemiReste == 0 && boss_pv > 0) {
// image(imgWin, largeur/2, hauteur/2); // image(imgWin, largeur/2, hauteur/2);
if (boss_start == false) { if (boss_start == false) {
boss_start = true; boss_start = true;
boss_time = millis()/1000; boss_time = millis()/1000;
} }
boss(); boss();
} }
// Mise à jour du texte de l'écran : // Mise à jour du texte de l'écran :
text("frame: " + frameCount, 10, 20); text("frame: " + frameCount, 10, 20);
text("Time: " + millis() / 1000, 10, 35); text("Time: " + millis() / 1000, 10, 35);
text("PV: " + ship.pv, width - 60, 20); text("PV: " + ship.pv, width - 60, 20);
if (ship.pv == - 0) { if (ship.pv == - 0) {
// Installation du timer // Installation du timer
if (timer == 0) timer = millis() + timerGameOver; if (timer == 0) timer = millis() + timerGameOver;
// Vérification du temps par rapport au timer // Vérification du temps par rapport au timer
//println(millis() + " / timer : " + timer); //println(millis() + " / timer : " + timer);
if ( millis() > timer ) { if ( millis() > timer ) {
image(imgGameover, largeur/2, hauteur/2); image(imgGameover, largeur/2, hauteur/2);
println("GAME OVER"); println("GAME OVER");
noLoop(); noLoop();
} }
} }
//Affiche le "WIN" Du niveau 1 //Affiche le "WIN" Du niveau 1
if ( nombreEnemiReste == 0 && boss_pv == 0) { if ( nombreEnemiReste == 0 && boss_pv == 0) {
//image(imgWin, largeur/2, hauteur/2); //image(imgWin, largeur/2, hauteur/2);
} }
if ( nombreEnemiReste == 0 && boss_pv == 0) { if ( nombreEnemiReste == 0 && boss_pv == 0) {
//on load la deuxièmme vague de vaisseau //on load la deuxièmme vague de vaisseau
//on crée des ennemis //on crée des ennemis
// Fait une boucle sur tout le tableau d'ennemies // Fait une boucle sur tout le tableau d'ennemies
//for ( int i = 0; i<nombreEnemi; i++) { //for ( int i = 0; i<nombreEnemi; i++) {
// //on ressucite les ennemis avec 4 pv // //on ressucite les ennemis avec 4 pv
// a[i].enemypv = 4; // a[i].enemypv = 4;
// nombreEnemiReste = nombreEnemi; // nombreEnemiReste = nombreEnemi;
//} //}
//on crée des ennemis //on crée des ennemis
// // Fait une boucle sur tout le tableau d'ennemies // // Fait une boucle sur tout le tableau d'ennemies
//for ( int i = 0; i<nombreEnemi; i++) { //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 la mise a jour du missile que si l'ennemi est encore vivant ou missile en cours
// if (a[i].show || b[i].show) { // if (a[i].show || b[i].show) {
// b[i].affiche_et_mets_a_jour_le_missile(); // b[i].affiche_et_mets_a_jour_le_missile();
// } // }
// //fait la mise a jour du mechant que si il est encore vivant // //fait la mise a jour du mechant que si il est encore vivant
// if (a[i].NUMEROXEPLO < 50) { // if (a[i].NUMEROXEPLO < 50) {
// a[i].affiche_et_mets_a_jour_les_mechants(); // a[i].affiche_et_mets_a_jour_les_mechants();
// } // }
//} //}
//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); // a[i] = new Alien (100+(j*150), k*100, 3, mechant);
//} //}
////on crée des misiles ////on crée des misiles
//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;
// } // }
// b[i] = new Misile (100+(j*150), k*100, misileMechant1, time); // b[i] = new Misile (100+(j*150), k*100, misileMechant1, time);
//} //}
} }
// // Fait une boucle sur tout le tableau d'ennemies // // Fait une boucle sur tout le tableau d'ennemies
//for ( int i = 0; i<nombreEnemi; i++) { //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 la mise a jour du missile que si l'ennemi est encore vivant ou missile en cours
// if (a[i].show || b[i].show) { // if (a[i].show || b[i].show) {
// b[i].affiche_et_mets_a_jour_le_missile(); // b[i].affiche_et_mets_a_jour_le_missile();
// } // }
// //fait la mise a jour du mechant que si il est encore vivant // //fait la mise a jour du mechant que si il est encore vivant
// if (a[i].NUMEROXEPLO < 50) { // if (a[i].NUMEROXEPLO < 50) {
// a[i].affiche_et_mets_a_jour_les_mechants(); // a[i].affiche_et_mets_a_jour_les_mechants();
// } // }
//} //}
//if (nombreEnemi <= 0){ //if (nombreEnemi <= 0){
//test = true; //test = true;
//} //}
//c[1] = new Alien2(); //c[1] = new Alien2();
} }
//ça verifie tout le tenps si une touche utilise est preser //ça verifie tout le tenps si une touche utilise est preser
void keyPressed() { void keyPressed() {
if (key == 'f' ) { touchePresse = "f"; } if (key == 'f' ) { touchePresse = "f"; }
if (key == 'z' && touchePresse == "f") { if (key == 'z' && touchePresse == "f") {
//on tue tous les ennemis //on tue tous les ennemis
for (int i = 0; i<nombreEnemi; i++) { for (int i = 0; i<nombreEnemi; i++) {
a[i].enemypv = 0; a[i].enemypv = 0;
// nombreEnemiRestek = 0; // nombreEnemiRestek = 0;
boss_pv = 1; boss_pv = 1;
} }
touchePresse = null; touchePresse = null;
} }
if (key == ' ' && ship.show) { if (key == ' ' && ship.show) {
lancermisile = true; lancermisile = true;
//Joue le son... //Joue le son...
if (son && ym == y) sonLancemissile.play(); if (son && ym == y) sonLancemissile.play();
} }
//pour mettre en pause/continuer //pour mettre en pause/continuer
if (key == 'p') { if (key == 'p') {
pause = !pause; pause = !pause;
//Met en pause ou countinue //Met en pause ou countinue
if (pause) noLoop(); if (pause) noLoop();
else loop(); else loop();
} }
if (key == 'z' || key == 'Z' || (key == CODED && keyCode == UP) ) { if (key == 'z' || key == 'Z' || (key == CODED && keyCode == UP) ) {
moveYn = 1; moveYn = 1;
} }
if (key == 's' || key == 'S' || (key == CODED && keyCode == DOWN) ) { if (key == 's' || key == 'S' || (key == CODED && keyCode == DOWN) ) {
moveYp = 1; moveYp = 1;
} }
if (key == 'q' || key == 'Q' || (key == CODED && keyCode == LEFT) ) { if (key == 'q' || key == 'Q' || (key == CODED && keyCode == LEFT) ) {
moveXn = 1; moveXn = 1;
} }
if (key == 'd' || key == 'D' || (key == CODED && keyCode == RIGHT) ) { if (key == 'd' || key == 'D' || (key == CODED && keyCode == RIGHT) ) {
moveXp = 1; moveXp = 1;
} }
if (keyCode == SHIFT || key == 'Z' || key == 'Q' || key == 'S' || key == 'D') { if (keyCode == SHIFT || key == 'Z' || key == 'Q' || key == 'S' || key == 'D') {
moveBoost = 2; moveBoost = 2;
} }
} }
//ça verifie tout le tenps si une touche utilise est relacher //ça verifie tout le tenps si une touche utilise est relacher
void keyReleased() { void keyReleased() {
if (key == 'z' || key == 'Z' || (key == CODED && keyCode == UP) ) { if (key == 'z' || key == 'Z' || (key == CODED && keyCode == UP) ) {
moveYn = 0; moveYn = 0;
} }
if (key == 's' || key == 'S' || (key == CODED && keyCode == DOWN) ) { if (key == 's' || key == 'S' || (key == CODED && keyCode == DOWN) ) {
moveYp = 0; moveYp = 0;
} }
if (key == 'q' || key == 'Q' || (key == CODED && keyCode == LEFT) ) { if (key == 'q' || key == 'Q' || (key == CODED && keyCode == LEFT) ) {
moveXn = 0; moveXn = 0;
} }
if (key == 'd' || key == 'D' || (key == CODED && keyCode == RIGHT) ) { if (key == 'd' || key == 'D' || (key == CODED && keyCode == RIGHT) ) {
moveXp = 0; moveXp = 0;
} }
if (keyCode == SHIFT || key == 'Z' || key == 'Q' || key == 'S' || key == 'D') { if (keyCode == SHIFT || key == 'Z' || key == 'Q' || key == 'S' || key == 'D') {
moveBoost = 1; moveBoost = 1;
} }
} }
//on calcule et on met a jour les coordonnées du vaisau //on calcule et on met a jour les coordonnées du vaisau
void miseAJourDuDeplacement() { void miseAJourDuDeplacement() {
int deplacement = 10*moveBoost; 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 < 100) y = 100;
} }
if (moveYp - moveYn == 1) { if (moveYp - moveYn == 1) {
y = y + deplacement; y = y + deplacement;
if (y > height - 100 ) y = height - 100; if (y > height - 100 ) y = height - 100;
} }
if (moveXp - moveXn == -1) { if (moveXp - moveXn == -1) {
x = x- deplacement; x = x - deplacement;
if (x < 100) x = 100; if (x < 100) x = 100;
} }
if (moveXp - moveXn == 1) { if (moveXp - moveXn == 1) {
x = x+ deplacement; x = x+ deplacement;
if (x > width - 100 ) x = width - 100; if (x > width - 100 ) x = width - 100;
} }
} }
//Truc a faire à la fin... //Truc a faire à la fin...
void stop() { void stop() {
} }