Modifs du samedi 12/06/2021

This commit is contained in:
Stève Oriol 2021-06-12 15:38:53 +02:00
parent 39a7eb9521
commit c2e3cb2f83
5 changed files with 676 additions and 664 deletions

484
Boss.pde
View File

@ -1,242 +1,242 @@
class Boss { class Boss {
int pv, pv_baseboss; int pv, pv_baseboss;
boolean invincible = false; boolean invincible = false;
float boss_time; float boss_time;
boolean boss_d_ou_g = false; boolean boss_d_ou_g = false;
int boss_vitesse, default_bosvit; int boss_vitesse, default_bosvit;
float boss_cooldown = 5; float boss_cooldown = 5;
boolean collision_laser = false; boolean collision_laser = false;
PImage visu_boss; PImage visu_boss;
int y; int y;
int x; //égale à ancien "boss_bouge" int x; //égale à ancien "boss_bouge"
boolean show = true; boolean show = true;
int NUMEROXEPLO = 0; int NUMEROXEPLO = 0;
int deta_time; int deta_time;
int time_inv_boss, invisi_time = 2000; // temps de d'invincibilité en millisecondes (2 secondes) int time_inv_boss, invisi_time = 2000; // temps de d'invincibilité en millisecondes (2 secondes)
int time_cligno_boss, deta_cligno_time = 150; // temps de clignotage en millisecondes int time_cligno_boss, deta_cligno_time = 150; // temps de clignotage en millisecondes
//jauge des pv du boss //jauge des pv du boss
int H_jpv = 25, W_jpv = 650, x_jpv, y_jpv = 20; int H_jpv = 25, W_jpv = 650, x_jpv, y_jpv = 20;
int largeur_bar_vie_T = W_jpv; int largeur_bar_vie_T = W_jpv;
int largeur_bar_vie_cible = W_jpv; int largeur_bar_vie_cible = W_jpv;
//laser //laser
int Xa, Xb, Xc, Ya, Yb, Yc, Xd, Yd, Xe, Ye; int Xa, Xb, Xc, Ya, Yb, Yc, Xd, Yd, Xe, Ye;
float ABC, DBC, ACB, DCB, EBC, ECB; float ABC, DBC, ACB, DCB, EBC, ECB;
int boss_stop = 4; int boss_stop = 4;
boolean son_Laser = false, clignote = false; boolean son_Laser = false, clignote = false;
Boss (int pvboss, String visuboss, int start_x, int start_y, int vitboss){ Boss (int pvboss, String visuboss, int start_x, int start_y, int vitboss){
boss_vitesse = default_bosvit = vitboss; boss_vitesse = default_bosvit = vitboss;
x = start_x; x = start_x;
y = start_y; y = start_y;
pv = pv_baseboss = pvboss; pv = pv_baseboss = pvboss;
boss_time = millis()/1000; boss_time = millis()/1000;
visu_boss = loadImage("data/images/" + visuboss); visu_boss = loadImage("data/images/" + visuboss);
} }
void BarDeVieBoss(){ void BarDeVieBoss(){
//largeur en pixels en fonction des pv courants du boss //largeur en pixels en fonction des pv courants du boss
largeur_bar_vie_cible = W_jpv * pv / pv_baseboss; largeur_bar_vie_cible = W_jpv * pv / pv_baseboss;
//println ("T : " + largeur_bar_vie_T + " C : " + largeur_bar_vie_cible); //println ("T : " + largeur_bar_vie_T + " C : " + largeur_bar_vie_cible);
//calcul delai en miliseconds pour chaque pixels a supprimer de la bars de vie en fonction du temps d'invincibilité du boss //calcul delai en miliseconds pour chaque pixels a supprimer de la bars de vie en fonction du temps d'invincibilité du boss
// temps / pixels a suprimmer de la barre : // temps / pixels a suprimmer de la barre :
//deta_time = invisi_time / (W_jpv - (W_jpv * pv / pv_baseboss)); //deta_time = invisi_time / (W_jpv - (W_jpv * pv / pv_baseboss));
//println("pv : " + pv + " :: invincible : " + invincible+ " :: deta_time : " + deta_time); //println("pv : " + pv + " :: invincible : " + invincible+ " :: deta_time : " + deta_time);
//jauge des pv du boss //jauge des pv du boss
x_jpv = width/2-W_jpv/2; x_jpv = width/2-W_jpv/2;
fill(255, 255, 255, 40); fill(255, 255, 255, 40);
noStroke(); noStroke();
rect(x_jpv, y_jpv, W_jpv, H_jpv, H_jpv / 2); rect(x_jpv, y_jpv, W_jpv, H_jpv, H_jpv / 2);
fill(#AE0202, 230); fill(#AE0202, 230);
noStroke(); noStroke();
rect( rect(
x_jpv + (W_jpv - largeur_bar_vie_T)/2, // coordonnées X de la bar de vie x_jpv + (W_jpv - largeur_bar_vie_T)/2, // coordonnées X de la bar de vie
y_jpv, // coordonnées Y de la bar de vie y_jpv, // coordonnées Y de la bar de vie
largeur_bar_vie_T, largeur_bar_vie_T,
H_jpv, // hauteur de la bar de vie H_jpv, // hauteur de la bar de vie
H_jpv / 2 // pour arrondir les angles de la bar de vie du boss H_jpv / 2 // pour arrondir les angles de la bar de vie du boss
); );
fill(255); fill(255);
textSize(H_jpv / 1.5); textSize(H_jpv / 1.5);
textAlign(CENTER, CENTER); textAlign(CENTER, CENTER);
text(pv + " / " + pv_baseboss , x_jpv + W_jpv / 2 , y_jpv + H_jpv /2); text(pv + " / " + pv_baseboss , x_jpv + W_jpv / 2 , y_jpv + H_jpv /2);
textAlign(LEFT, BOTTOM); textAlign(LEFT, BOTTOM);
textSize(12); textSize(12);
strokeWeight(2); strokeWeight(2);
stroke(#ffffff); stroke(#ffffff);
noFill(); noFill();
rect(x_jpv, y_jpv, W_jpv, H_jpv, H_jpv / 2); rect(x_jpv, y_jpv, W_jpv, H_jpv, H_jpv / 2);
fill(255, 255, 255); fill(255, 255, 255);
strokeWeight(1); strokeWeight(1);
stroke(#000000); stroke(#000000);
} }
void verifiercollisions(){ void verifiercollisions(){
//vérifie s'il y a une collisions avec le vaisseau //vérifie s'il y a une collisions avec le vaisseau
if ( dist(ship.x, ship.y, x, y) < 200 && show) { if ( dist(ship.x, ship.y, x, y) < 200 && show) {
ship.collision = true; ship.collision = true;
} }
//println("pv : " + pv); //println("pv : " + pv);
//vérifie les collisions du missile du notre vaisseau sur le boss //vérifie les collisions du missile du notre vaisseau sur le boss
if ( dist(xm, ym, x, y) < 114 && !invincible && show){ if ( dist(xm, ym, x, y) < 114 && !invincible && show){
//invincible = true; //invincible = true;
clignote = false; clignote = false;
pv = pv - 1; pv = pv - 1;
sonCollision.play(); sonCollision.play();
if (pv > 0) { if (pv > 0) {
time_inv_boss = millis() + invisi_time; time_inv_boss = millis() + invisi_time;
invincible = true; invincible = true;
} else { } else {
show = false; show = false;
} }
//Suppression du missile //Suppression du missile
lancermisile = false; //a voir pour faire une classe pour le missile du ship lancermisile = false; //a voir pour faire une classe pour le missile du ship
} }
//vérification de la collision avec le laser du boss //vérification de la collision avec le laser du boss
if(boss_vitesse == 0){ if(boss_vitesse == 0){
//coordonnées base du vaisseau: //coordonnées base du vaisseau:
Xd = ship.x - 100; Xd = ship.x - 100;
Yd = ship.y + 100; Yd = ship.y + 100;
Xe = ship.x + 100; Xe = ship.x + 100;
Ye = Yd; Ye = Yd;
//calcul des angles //calcul des angles
ABC = acos( ( ((Xc-Xb)*(Xa-Xb)) + ((Yc-Yb)*(Ya-Yb)) )/( sqrt(sq(Xc-Xb)+sq(Yc-Yb)) * sqrt(sq(Xa-Xb)+sq(Ya-Yb)) ) ); ABC = acos( ( ((Xc-Xb)*(Xa-Xb)) + ((Yc-Yb)*(Ya-Yb)) )/( sqrt(sq(Xc-Xb)+sq(Yc-Yb)) * sqrt(sq(Xa-Xb)+sq(Ya-Yb)) ) );
ACB = ABC; ACB = ABC;
//println("ABC : "+ ABC); //println("ABC : "+ ABC);
//DBC = acos( ( ((Xc-Xb)*(Xd-Xb)) + ((Yc-Yb)*(Yd-Yb)) )/( sqrt(sq(Xc-Xb)+sq(Yc-Yb)) * sqrt(sq(Xd-Xb)+sq(Yd-Yb)) ) ); //DBC = acos( ( ((Xc-Xb)*(Xd-Xb)) + ((Yc-Yb)*(Yd-Yb)) )/( sqrt(sq(Xc-Xb)+sq(Yc-Yb)) * sqrt(sq(Xd-Xb)+sq(Yd-Yb)) ) );
DCB = acos( ( ((Xb-Xc)*(Xd-Xc)) + ((Yb-Yc)*(Yd-Yc)) )/( sqrt(sq(Xb-Xc)+sq(Yb-Yc)) * sqrt(sq(Xd-Xc)+sq(Yd-Yc)) ) ); DCB = acos( ( ((Xb-Xc)*(Xd-Xc)) + ((Yb-Yc)*(Yd-Yc)) )/( sqrt(sq(Xb-Xc)+sq(Yb-Yc)) * sqrt(sq(Xd-Xc)+sq(Yd-Yc)) ) );
EBC = acos( ( ((Xc-Xb)*(Xe-Xb)) + ((Yc-Yb)*(Ye-Yb)) )/( sqrt(sq(Xc-Xb)+sq(Yc-Yb)) * sqrt(sq(Xe-Xb)+sq(Ye-Yb)) ) ); EBC = acos( ( ((Xc-Xb)*(Xe-Xb)) + ((Yc-Yb)*(Ye-Yb)) )/( sqrt(sq(Xc-Xb)+sq(Yc-Yb)) * sqrt(sq(Xe-Xb)+sq(Ye-Yb)) ) );
//println("DCB : "+ DCB + " / EBC : "+ EBC); //println("DCB : "+ DCB + " / EBC : "+ EBC);
stroke(204, 102, 0); stroke(204, 102, 0);
strokeWeight(4); strokeWeight(4);
line(Xd, Yd, Xe, Ye); line(Xd, Yd, Xe, Ye);
//println("Ye, Xe : " + Ye + " <> " + Xe); //println("Ye, Xe : " + Ye + " <> " + Xe);
//println("Xd, Yd : " + Xd + " <> " + Yd); //println("Xd, Yd : " + Xd + " <> " + Yd);
//test collisions avec le laser: //test collisions avec le laser:
if (EBC > ABC || ACB < DCB) { if (EBC > ABC || ACB < DCB) {
collision_laser = false; collision_laser = false;
//println("collision laser: " + collision_laser); //println("collision laser: " + collision_laser);
} else { } else {
collision_laser = true; collision_laser = true;
ship.collision = true; ship.collision = true;
//println("collision laser: " + collision_laser); //println("collision laser: " + collision_laser);
} }
} }
} }
void bouge_boss(){ void bouge_boss(){
//gestion du laser //gestion du laser
if (boss_time + boss_cooldown < millis()/1000 && !invincible && pv > 0) { if (boss_time + boss_cooldown < millis()/1000 && !invincible && pv > 0) {
boss_vitesse = 0; boss_vitesse = 0;
image(laserboss1, x, 380 + y); image(laserboss1, x, 380 + y);
//joue le son du laser une seul fois //joue le son du laser une seul fois
if(!son_Laser){ if(!son_Laser){
son_Laser = true; son_Laser = true;
sonLaser_boss.play(); sonLaser_boss.play();
} }
//calcul dimension laser: //calcul dimension laser:
//coordonnées point haut //coordonnées point haut
Xa = x; Xa = x;
Ya = -100 + y; Ya = -100 + y;
Xb = x - 566; Xb = x - 566;
Yb = -100 + y + 981; Yb = -100 + y + 981;
Xc = x + 566; Xc = x + 566;
Yc = Yb; Yc = Yb;
//triangle(Xa, Ya, Xb, Yb, Xc, Yc); //triangle(Xa, Ya, Xb, Yb, Xc, Yc);
// boucle fin d'attaque // boucle fin d'attaque
if (boss_time + boss_cooldown + boss_stop < millis()/1000){ if (boss_time + boss_cooldown + boss_stop < millis()/1000){
boss_cooldown = random(1, 7); boss_cooldown = random(1, 7);
boss_vitesse = default_bosvit++; boss_vitesse = default_bosvit++;
//default_bosvit += 1; //default_bosvit += 1;
boss_time = millis()/1000; boss_time = millis()/1000;
son_Laser = false; son_Laser = false;
} }
//println("boss_time + boss_cooldown + boss_stop : "+ boss_time + boss_cooldown + boss_stop); //println("boss_time + boss_cooldown + boss_stop : "+ boss_time + boss_cooldown + boss_stop);
} }
if (boss_d_ou_g == true){ //si le boss vas vers la gauche if (boss_d_ou_g == true){ //si le boss vas vers la gauche
if (x > 100){ //si le boss il n'est pas tout a gauche if (x > 100){ //si le boss il n'est pas tout a gauche
x -= boss_vitesse; //on le fais aller a gauche x -= boss_vitesse; //on le fais aller a gauche
} else { //sinon } else { //sinon
boss_d_ou_g = false; //on lui dit d'aller a gauche boss_d_ou_g = false; //on lui dit d'aller a gauche
} }
} }
if (boss_d_ou_g == false && x < width-100){ if (boss_d_ou_g == false && x < width-100){
x += boss_vitesse; x += boss_vitesse;
} else { } else {
boss_d_ou_g = true; boss_d_ou_g = true;
} }
} }
void apparaitre(){ void apparaitre(){
//println("invincible : " + invincible + " :: time_inv_boss : " + time_inv_boss + " :: millis() : " + millis() ); //println("invincible : " + invincible + " :: time_inv_boss : " + time_inv_boss + " :: millis() : " + millis() );
// invincibileté : // invincibileté :
if (invincible && time_inv_boss > millis()) { if (invincible && time_inv_boss > millis()) {
//time_inv_boss = millis(); //time_inv_boss = millis();
invincible = true; invincible = true;
} else { } else {
clignote = invincible = false; clignote = invincible = false;
} }
if (largeur_bar_vie_T > largeur_bar_vie_cible){ if (largeur_bar_vie_T > largeur_bar_vie_cible){
largeur_bar_vie_T -- ; largeur_bar_vie_T -- ;
} }
// clignotement : // clignotement :
if (invincible && time_cligno_boss + deta_cligno_time <= millis()) { if (invincible && time_cligno_boss + deta_cligno_time <= millis()) {
time_cligno_boss = millis(); time_cligno_boss = millis();
clignote = !clignote; clignote = !clignote;
} }
//affiche l'anime de explosion : //affiche l'anime de explosion :
if ( !show && NUMEROXEPLO<50 ) { if ( !show && NUMEROXEPLO<50 ) {
// Ou Methode avec un if : // Ou Methode avec un if :
if ( String.valueOf(NUMEROXEPLO).length()==1 ) visu_boss = loadImage("data/images/explosion/explosion000"+NUMEROXEPLO+".png"); if ( String.valueOf(NUMEROXEPLO).length()==1 ) visu_boss = loadImage("data/images/explosion/explosion000"+NUMEROXEPLO+".png");
else visu_boss = loadImage("data/images/explosion/explosion00"+NUMEROXEPLO+".png"); else visu_boss = loadImage("data/images/explosion/explosion00"+NUMEROXEPLO+".png");
NUMEROXEPLO += 1; NUMEROXEPLO += 1;
} }
if (NUMEROXEPLO == 1 && son) sonExposion.play(); if (NUMEROXEPLO == 1 && son) sonExposion.play();
//Affiche le ship ou explosion s'il n'est pas détruis (l'anime de explosion est pas finie) //Affiche le ship ou explosion s'il n'est pas détruis (l'anime de explosion est pas finie)
if (NUMEROXEPLO < 50 && !clignote) image(visu_boss, x, y); if (NUMEROXEPLO < 50 && !clignote) image(visu_boss, x, y);
//println("boss .."); //println("boss ..");
} }
void affiche_et_mets_a_jour_le_boss(){ void affiche_et_mets_a_jour_le_boss(){
BarDeVieBoss(); BarDeVieBoss();
verifiercollisions(); verifiercollisions();
bouge_boss(); bouge_boss();
apparaitre(); apparaitre();
} }
} }

View File

Before

Width:  |  Height:  |  Size: 9.7 KiB

After

Width:  |  Height:  |  Size: 9.7 KiB

View File

@ -2,7 +2,7 @@
//code des Misiles des méchants //code des Misiles des méchants
class MisileGuides { class MisileGuides {
boolean show = false; boolean show2 = false;
PImage misile; PImage misile;
int y,x,yStart; int y,x,yStart;
float time; float time;
@ -13,13 +13,22 @@ class MisileGuides {
time = timet; time = timet;
misile = loadImage(misilet); misile = loadImage(misilet);
} }
void guide() { void guide() {
if (x < ship.x) { if (x < ship.x) {
while(x < ship.x){ x = x + 6;
y -= 6;
x += 6; if (y < ship.y) {
} y = y + 6;
// while(x < ship.x){
// y += 6;
// x += 6;
//}
}
} }
} }
void apparaitre() { void apparaitre() {
@ -29,12 +38,13 @@ class MisileGuides {
void verifiercollisions() { void verifiercollisions() {
// Si un missile est en cours // Si un missile est en cours
if (show) { if (show2) {
// Si le missile sort en bas de l'écran // Si le missile sort en bas de l'écran
if (y > hauteur) { if (y > hauteur) {
println(show2);
//on supprime le missile //on supprime le missile
show = false; show2 = false;
//on remet le y du missile pour le prochain //on remet le y du missile pour le prochain
y = yStart; y = yStart;
} }
@ -45,7 +55,7 @@ class MisileGuides {
sonCollision.play(); sonCollision.play();
// supprime le missile // supprime le missile
show = false; show2 = false;
} }
} }
@ -56,16 +66,14 @@ class MisileGuides {
// y += 6; //ont peut changer cette variable(le nombre de la variable)pour changer la vitesse des missiles enemis. // y += 6; //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_guides() { void affiche_et_mets_a_jour_le_missile_guides() {
if (show) { //println(show2);
// tomber(); if (show2 == true) {
verifiercollisions(); verifiercollisions();
apparaitre(); apparaitre();
} else { guide();
//Si pas de missile actif on peut en lancer un de temps en temps si le ship et toujours en vie:
// 0.1% du temps }
if ( ship.pv != 0 && random(1000) < 1 ) show = true;
}
} }
} }

View File

@ -1,405 +1,409 @@
// 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 d = true;
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=0;
boolean lancermisile = false; boolean lancermisile = false;
String touchePresse = null; String touchePresse = null;
//int nombreEnemiRestek = nombreEnemik; //int nombreEnemiRestek = nombreEnemik;
Ship ship; Ship ship;
Boss boss; Boss boss;
boolean[] level = new boolean[3]; boolean[] level = new boolean[3];
int nombreEnemi = 20; int nombreEnemi = 20;
int nombreEnemi_vague2 = 3; int nombreEnemi_vague2 = 3;
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[3]; Alien2 [] c = new Alien2[3];
MisileGuides [] d = new MisileGuides[1];
//Etat de deplacement: 0 = aucun deplacement en cours
int moveXp = 0; // 1 si deplacement vers le bas //Etat de deplacement: 0 = aucun deplacement en cours
int moveXn = 0; // 1 si deplacement vers le haut int moveXp = 0; // 1 si deplacement vers le bas
int moveYp = 0; // 1 si deplacement vers la droite int moveXn = 0; // 1 si deplacement vers le haut
int moveYn = 0; // 1 si deplacement vers la gauche int moveYp = 0; // 1 si deplacement vers la droite
int moveBoost = 1; int moveYn = 0; // 1 si deplacement vers la gauche
int moveBoost = 1;
boolean pause = false;
boolean pause = false;
void setup() {
void setup() {
stroke(#000000);
strokeWeight(1); stroke(#000000);
textAlign(LEFT, TOP); strokeWeight(1);
textSize(12); textAlign(LEFT, TOP);
size(1600, 900); textSize(12);
imageMode(CENTER); size(1600, 900);
imageMode(CENTER);
c[0] = new Alien2(800,350,5,"mechant_tres_mechant150x150.png");
c[1] = new Alien2(1200,350,5,"mechant_tres_mechant150x150.png"); c[0] = new Alien2(800,350,5,"mechant_tres_mechant150x150.png");
c[2] = new Alien2(400,350,5,"mechant_tres_mechant150x150.png"); c[1] = new Alien2(1200,350,5,"mechant_tres_mechant150x150.png");
c[2] = new Alien2(400,350,5,"mechant_tres_mechant150x150.png");
//là, ça charge les images dans leurres varibles
space = loadImage("data/images/space.jpg");
img_ship = loadImage("data/images/redfighter_200x200.png");
misile = loadImage("data/images/misile.png"); //là, ça charge les images dans leurres varibles
imgGameover = loadImage("data/images/gameover.png"); space = loadImage("data/images/space.jpg");
imgWin = loadImage("data/images/Win_game.png"); img_ship = loadImage("data/images/redfighter_200x200.png");
imgboss1 = loadImage("data/images/vaiseau_enemi.png"); misile = loadImage("data/images/misile.png");
laserboss1 = loadImage("data/images/laser_boss1.png"); imgGameover = loadImage("data/images/gameover.png");
imgWin = loadImage("data/images/Win_game.png");
//création du boss imgboss1 = loadImage("data/images/vaiseau_enemi.png");
boss = new Boss(5, "vaiseau_enemi.png", 800, 171, 8); laserboss1 = loadImage("data/images/laser_boss1.png");
//on crée le ship
ship = new Ship(x, y, 999999, img_ship); //création du boss
boss = new Boss(5, "vaiseau_enemi.png", 800, 171, 8);
//on crée des ennemis //on crée le ship
for (int i = 0; i<nombreEnemi; i++) { ship = new Ship(x, y, 5, img_ship);
int j;
int k; //on crée des ennemis
if (i > 9) { for (int i = 0; i<nombreEnemi; i++) {
j = i-10; int j;
k =2; int k;
} else { if (i > 9) {
j = i; j = i-10;
k =1; k =2;
} } else {
a[i] = new Alien (100+(j*150), k*100, 1, "mechant_rouge_150x150.png"); j = i;
// a[i] = new Alien (100+(j*150), k*100, 3, "mechant_tres_mechant150x150.png"); k =1;
} }
println("Affichage mechant"); a[i] = new Alien (100+(j*150), k*100, 1, "mechant_rouge_150x150.png");
// a[i] = new Alien (100+(j*150), k*100, 3, "mechant_tres_mechant150x150.png");
}
//on crée des misiles println("Affichage mechant");
for (int i = 0; i<nombreEnemi; i++) {
int j;
int k; //on crée des misiles
if (i > 9) { for (int i = 0; i<nombreEnemi; i++) {
j = i-10; int j;
k =2; int k;
} else { if (i > 9) {
j = i; j = i-10;
k =1; k =2;
} } else {
b[i] = new Misile (100+(j*150), k*100, misileMechant1, time); j = i;
} k =1;
}
// Sons b[i] = new Misile (100+(j*150), k*100, misileMechant1, time);
if (son) { }
sonLancemissile = new SoundFile(this, "data/sons/lancemissile.mp3");
sonExposion = new SoundFile(this, "data/sons/SFB-explosion2.mp3"); /* missile guidés */
sonCollision = new SoundFile(this, "data/sons/collision avec le vaisseau.mp3"); d[0] = new MisileGuides (100+(1*150), 1*100, misileMechant1, 0);
sonLaser_boss = new SoundFile(this, "data/sons/Laser_boss.mp3");
} // Sons
if (son) {
//Vitesse : frame par seconde sonLancemissile = new SoundFile(this, "data/sons/lancemissile.mp3");
frameRate(60); 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");
void draw() { }
// if ( nombreEnemiReste == 0 && ship.pv > 0) { //Vitesse : frame par seconde
// frameRate(60);
// }
// }
//debug: void draw() {
//println(nombreEnemiReste);
// if ( nombreEnemiReste == 0 && ship.pv > 0) {
//
miseAJourDuDeplacement(); //
// }
//Affiche l'image de fond (l'espace) //debug:
background(space); //println(nombreEnemiReste);
// Si un missile du ship est en cours (actif)
if (lancermisile) { miseAJourDuDeplacement();
//on le fait avencer
ym = ym - 20; //Affiche l'image de fond (l'espace)
// Si le missile sort en haut de l'écran background(space);
if (ym < 0) {
ym = y; // Si un missile du ship est en cours (actif)
xm = x; if (lancermisile) {
lancermisile = false; //on le fait avencer
} ym = ym - 20;
// Affiche l'image du missile // Si le missile sort en haut de l'écran
image(misile, xm, ym); if (ym < 0) {
} else { ym = y;
//Sinon (missile non actif) xm = x;
//on le affiche en dessous du vaiseau si encore vivant lancermisile = false;
if (ship.show) { }
ym = y; // Affiche l'image du missile
xm = x; image(misile, xm, ym);
} } else {
} //Sinon (missile non actif)
//on le affiche en dessous du vaiseau si encore vivant
// Fait une boucle sur tout le tableau d'ennemies if (ship.show) {
for ( int i = 0; i<nombreEnemi; i++) { ym = y;
//fait la mise a jour du missile que si l'ennemi est encore vivant ou missile en cours xm = x;
if (a[i].show || b[i].show) { }
b[i].affiche_et_mets_a_jour_le_missile(); }
}
//fait la mise a jour du mechant que si il est encore vivant // Fait une boucle sur tout le tableau d'ennemies
if (a[i].NUMEROXEPLO < 50) { for ( int i = 0; i<nombreEnemi; i++) {
a[i].affiche_et_mets_a_jour_les_mechants(); //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 la mise a jour du mechant que si il est encore vivant
// Affiche l'image du vaiseau if (a[i].NUMEROXEPLO < 50) {
ship.affiche_et_mets_a_jour_le_ship(x, y); a[i].affiche_et_mets_a_jour_les_mechants();
}
}
//Affiche le boss Classe 1
text("énemis restant: " + nombreEnemiReste, 120, 20);
if ( nombreEnemiReste <= 0) { // Affiche l'image du vaiseau
boss.affiche_et_mets_a_jour_le_boss(); ship.affiche_et_mets_a_jour_le_ship(x, y);
}
// Mise à jour du texte de l'écran : //Affiche le boss Classe 1
text("frame: " + frameCount, 10, 20); text("énemis restant: " + nombreEnemiReste, 120, 20);
text("Time: " + millis() / 1000, 10, 35); if ( nombreEnemiReste <= 0) {
text("PV: " + ship.pv, width - 60, 20); boss.affiche_et_mets_a_jour_le_boss();
}
if (ship.pv == - 0) {
// Installation du timer // Mise à jour du texte de l'écran :
if (timer == 0) timer = millis() + timerGameOver; text("frame: " + frameCount, 10, 20);
text("Time: " + millis() / 1000, 10, 35);
// Vérification du temps par rapport au timer text("PV: " + ship.pv, width - 60, 20);
//println(millis() + " / timer : " + timer);
if ( millis() > timer ) { if (ship.pv == - 0) {
image(imgGameover, largeur/2, hauteur/2); // Installation du timer
println("GAME OVER"); if (timer == 0) timer = millis() + timerGameOver;
noLoop();
// Vérification du temps par rapport au timer
} //println(millis() + " / timer : " + timer);
} if ( millis() > timer ) {
image(imgGameover, largeur/2, hauteur/2);
//Affiche le "WIN" Du niveau 1 println("GAME OVER");
if ( nombreEnemiReste == 0 && boss.pv == 0) { noLoop();
//image(imgWin, largeur/2, hauteur/2);
} }
}
if (boss.pv <= 3){
// met a jour les méchants très méchants //Affiche le "WIN" Du niveau 1
c[0].affiche_et_mets_a_jour_les_mechants(); if ( nombreEnemiReste == 0 && boss.pv == 0) {
c[1].affiche_et_mets_a_jour_les_mechants(); //image(imgWin, largeur/2, hauteur/2);
c[2].affiche_et_mets_a_jour_les_mechants(); }
//nombreEnemiReste_vague2 =+ 3;
} if (boss.pv <= 3){
// met a jour les méchants très méchants
if (nombreEnemiReste == -3){ c[0].affiche_et_mets_a_jour_les_mechants();
if (boss.pv == 0){ c[1].affiche_et_mets_a_jour_les_mechants();
//on crée des misiles auto-guidés c[2].affiche_et_mets_a_jour_les_mechants();
//nombreEnemiReste_vague2 =+ 3;
}
}
}
if (nombreEnemiReste == -3){
if (boss.pv == 0){
if (boss.pv == 0){ d[0].affiche_et_mets_a_jour_le_missile_guides();
MisileGuides [] d = new MisileGuides[0]; d[0].show2 = true;
d[d] = new Misile (100+(j*150), k*100, misileMechant1, time); //println(d[0].show2);
//d[0].affiche_et_mets_a_jour_le_missile_guides(); }
}
}
//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++) {
// //on ressucite les ennemis avec 4 pv //if ( nombreEnemiReste == 0 && boss_pv == 0) {
// a[i].enemypv = 4; //on load la deuxièmme vague de vaisseau
// nombreEnemiReste = nombreEnemi; //on crée des ennemis
//} // Fait une boucle sur tout le tableau d'ennemies
//on crée des ennemis //for ( int i = 0; i<nombreEnemi; i++) {
// //on ressucite les ennemis avec 4 pv
// // Fait une boucle sur tout le tableau d'ennemies // a[i].enemypv = 4;
//for ( int i = 0; i<nombreEnemi; i++) { // nombreEnemiReste = nombreEnemi;
// //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) { //on crée des ennemis
// b[i].affiche_et_mets_a_jour_le_missile();
// } // // Fait une boucle sur tout le tableau d'ennemies
// //fait la mise a jour du mechant que si il est encore vivant //for ( int i = 0; i<nombreEnemi; i++) {
// if (a[i].NUMEROXEPLO < 50) { // //fait la mise a jour du missile que si l'ennemi est encore vivant ou missile en cours
// a[i].affiche_et_mets_a_jour_les_mechants(); // if (a[i].show || b[i].show) {
// } // b[i].affiche_et_mets_a_jour_le_missile();
//} // }
// //fait la mise a jour du mechant que si il est encore vivant
//for (int i = 0; i<nombreEnemi; i++) { // if (a[i].NUMEROXEPLO < 50) {
// int j; // a[i].affiche_et_mets_a_jour_les_mechants();
// int k; // }
// if (i > 9) { //}
// j = i-10;
// k =2; //for (int i = 0; i<nombreEnemi; i++) {
// } else { // int j;
// j = i; // int k;
// k =1; // if (i > 9) {
// } // j = i-10;
// a[i] = new Alien (100+(j*150), k*100, 3, mechant); // k =2;
//} // } else {
// j = i;
////on crée des misiles // k =1;
//for (int i = 0; i<nombreEnemi; i++) { // }
// int j; // a[i] = new Alien (100+(j*150), k*100, 3, mechant);
// int k; //}
// if (i > 9) {
// j = i-10; ////on crée des misiles
// k =2; //for (int i = 0; i<nombreEnemi; i++) {
// } else { // int j;
// j = i; // int k;
// k =1; // if (i > 9) {
// } // j = i-10;
// b[i] = new Misile (100+(j*150), k*100, misileMechant1, time); // k =2;
//} // } else {
//} // j = i;
// k =1;
// // Fait une boucle sur tout le tableau d'ennemies // }
//for ( int i = 0; i<nombreEnemi; i++) { // b[i] = new Misile (100+(j*150), k*100, misileMechant1, time);
// //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
// //fait la mise a jour du mechant que si il est encore vivant //for ( int i = 0; i<nombreEnemi; i++) {
// if (a[i].NUMEROXEPLO < 50) { // //fait la mise a jour du missile que si l'ennemi est encore vivant ou missile en cours
// a[i].affiche_et_mets_a_jour_les_mechants(); // if (a[i].show || b[i].show) {
// } // 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 //}
void keyPressed() { //c[1] = new Alien2();
}
if (key == 'f' ) { touchePresse = "f"; }
if (key == 'z' && touchePresse == "f") { //ça verifie tout le tenps si une touche utilise est preser
boss.pv = 2; void keyPressed() {
//on tue tous les ennemis
for (int i = 0; i<nombreEnemi; i++) { if (key == 'f' ) { touchePresse = "f"; }
a[i].enemypv = 0; if (key == 'z' && touchePresse == "f") {
} boss.pv = 2;
//on tue tous les ennemis
touchePresse = null; for (int i = 0; i<nombreEnemi; i++) {
} a[i].enemypv = 0;
}
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 vaisseau
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() {
}