mofif du samedi 22/05/2021 : ajout classe Misile
This commit is contained in:
parent
13f8b8c8f5
commit
3c4fa77d64
126
Misile.pde
126
Misile.pde
|
|
@ -1,63 +1,63 @@
|
|||
//code des Misiles des méchants
|
||||
class Misile {
|
||||
|
||||
boolean show = false;
|
||||
PImage misile;
|
||||
int y,x,yStart;
|
||||
float time;
|
||||
|
||||
Misile(int xt,int yt,String misilet,float timet) {
|
||||
x = xt;
|
||||
y = yStart = yt;
|
||||
time = timet;
|
||||
misile = loadImage(misilet);
|
||||
}
|
||||
|
||||
void apparaitre() {
|
||||
image(misile, x, y);
|
||||
}
|
||||
|
||||
void verifiercollisions() {
|
||||
|
||||
// Si un missile est en cours
|
||||
if (show) {
|
||||
|
||||
// Si le missile sort en bas de l'écran
|
||||
if (y > hauteur) {
|
||||
//on supprime le missile
|
||||
show = false;
|
||||
//on remet le y du missile pour le prochain
|
||||
y = yStart;
|
||||
}
|
||||
|
||||
if ( dist(ship.x, ship.y, x, y) < 130 ) {
|
||||
// Averti le vaiseau de la collision avec le missile
|
||||
ship.collision = true;
|
||||
sonCollision.play();
|
||||
|
||||
// supprime le missile
|
||||
show = false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void tomber() {
|
||||
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() {
|
||||
if (show) {
|
||||
tomber();
|
||||
verifiercollisions();
|
||||
apparaitre();
|
||||
} else {
|
||||
//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;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//code des Misiles des méchants
|
||||
class Misile {
|
||||
|
||||
boolean show = false;
|
||||
PImage misile;
|
||||
int y,x,yStart;
|
||||
float time;
|
||||
|
||||
Misile(int xt,int yt,String misilet,float timet) {
|
||||
x = xt;
|
||||
y = yStart = yt;
|
||||
time = timet;
|
||||
misile = loadImage(misilet);
|
||||
}
|
||||
|
||||
void apparaitre() {
|
||||
image(misile, x, y);
|
||||
}
|
||||
|
||||
void verifiercollisions() {
|
||||
|
||||
// Si un missile est en cours
|
||||
if (show) {
|
||||
|
||||
// Si le missile sort en bas de l'écran
|
||||
if (y > hauteur) {
|
||||
//on supprime le missile
|
||||
show = false;
|
||||
//on remet le y du missile pour le prochain
|
||||
y = yStart;
|
||||
}
|
||||
|
||||
if ( dist(ship.x, ship.y, x, y) < 130 ) {
|
||||
// Averti le vaiseau de la collision avec le missile
|
||||
ship.collision = true;
|
||||
sonCollision.play();
|
||||
|
||||
// supprime le missile
|
||||
show = false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void tomber() {
|
||||
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() {
|
||||
if (show) {
|
||||
tomber();
|
||||
verifiercollisions();
|
||||
apparaitre();
|
||||
} else {
|
||||
//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;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
Binary file not shown.
|
After Width: | Height: | Size: 16 KiB |
|
|
@ -0,0 +1,72 @@
|
|||
//il faut faire un ennemi qui balance des missiles guidés
|
||||
//code des Misiles des méchants
|
||||
class MisileGuides {
|
||||
|
||||
boolean show = false;
|
||||
PImage misile;
|
||||
int y,x,yStart;
|
||||
float time;
|
||||
|
||||
MisileGuides(int xt,int yt,String misilet,float timet) {
|
||||
x = xt;
|
||||
y = yStart = yt;
|
||||
time = timet;
|
||||
misile = loadImage(misilet);
|
||||
}
|
||||
|
||||
void guide(int xv, int yv) {
|
||||
if (x < xv) {
|
||||
while(x < xv){
|
||||
y -= 6;
|
||||
x += 6;
|
||||
}
|
||||
}
|
||||
}
|
||||
void apparaitre() {
|
||||
image(misile, x, y);
|
||||
}
|
||||
|
||||
void verifiercollisions() {
|
||||
|
||||
// Si un missile est en cours
|
||||
if (show) {
|
||||
|
||||
// Si le missile sort en bas de l'écran
|
||||
if (y > hauteur) {
|
||||
//on supprime le missile
|
||||
show = false;
|
||||
//on remet le y du missile pour le prochain
|
||||
y = yStart;
|
||||
}
|
||||
|
||||
if ( dist(ship.x, ship.y, x, y) < 130 ) {
|
||||
// Averti le vaiseau de la collision avec le missile
|
||||
ship.collision = true;
|
||||
sonCollision.play();
|
||||
|
||||
// supprime le missile
|
||||
show = false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//void tomber() {
|
||||
// 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() {
|
||||
if (show) {
|
||||
// tomber();
|
||||
verifiercollisions();
|
||||
apparaitre();
|
||||
} else {
|
||||
//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;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -1,389 +1,399 @@
|
|||
// ajouter le son ?
|
||||
boolean son = true;
|
||||
boolean boss_start = false;
|
||||
|
||||
|
||||
// ----------------------- \\
|
||||
|
||||
|
||||
// Importation librairies pour la gestion du sons
|
||||
import processing.sound.*;
|
||||
SoundFile sonLancemissile;
|
||||
SoundFile sonExposion;
|
||||
SoundFile sonCollision;
|
||||
SoundFile sonLaser_boss;
|
||||
|
||||
boolean test = false;
|
||||
int largeur = 1600;
|
||||
int hauteur = 900;
|
||||
PImage space, img_ship, misile, imgGameover, imgWin, imgboss1, laserboss1;
|
||||
String misileMechant1 = "data/images/misile - mechant.png";
|
||||
int x = largeur/2;
|
||||
int y = hauteur-100;
|
||||
int xm = x;
|
||||
int ym = y;
|
||||
int timerGameOver = 1500; // milliseconds d'attente avant affichage "Gameover"
|
||||
int timer = 0;
|
||||
int win;
|
||||
float time;
|
||||
boolean lancermisile = false;
|
||||
String touchePresse = null;
|
||||
//int nombreEnemiRestek = nombreEnemik;
|
||||
|
||||
Ship ship;
|
||||
Boss boss;
|
||||
|
||||
boolean[] level = new boolean[3];
|
||||
|
||||
int nombreEnemi = 20;
|
||||
int nombreEnemi_vague2 = 3;
|
||||
int nombreEnemiReste = nombreEnemi;
|
||||
Alien [] a = new Alien[nombreEnemi];
|
||||
Misile [] b = new Misile[nombreEnemi];
|
||||
Alien2 [] c = new Alien2[3];
|
||||
|
||||
//Etat de deplacement: 0 = aucun deplacement en cours
|
||||
int moveXp = 0; // 1 si deplacement vers le bas
|
||||
int moveXn = 0; // 1 si deplacement vers le haut
|
||||
int moveYp = 0; // 1 si deplacement vers la droite
|
||||
int moveYn = 0; // 1 si deplacement vers la gauche
|
||||
int moveBoost = 1;
|
||||
|
||||
boolean pause = false;
|
||||
|
||||
void setup() {
|
||||
|
||||
stroke(#000000);
|
||||
strokeWeight(1);
|
||||
textAlign(LEFT, TOP);
|
||||
textSize(12);
|
||||
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[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");
|
||||
imgGameover = loadImage("data/images/gameover.png");
|
||||
imgWin = loadImage("data/images/Win_game.png");
|
||||
imgboss1 = loadImage("data/images/vaiseau_enemi.png");
|
||||
laserboss1 = loadImage("data/images/laser_boss1.png");
|
||||
|
||||
//création du boss
|
||||
boss = new Boss(5, "vaiseau_enemi.png", 800, 171, 8);
|
||||
//on crée le ship
|
||||
ship = new Ship(x, y, 3, img_ship);
|
||||
|
||||
//on crée des ennemis
|
||||
for (int i = 0; i<nombreEnemi; i++) {
|
||||
int j;
|
||||
int k;
|
||||
if (i > 9) {
|
||||
j = i-10;
|
||||
k =2;
|
||||
} else {
|
||||
j = i;
|
||||
k =1;
|
||||
}
|
||||
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");
|
||||
}
|
||||
println("Affichage mechant");
|
||||
|
||||
|
||||
|
||||
//on crée des misiles
|
||||
for (int i = 0; i<nombreEnemi; i++) {
|
||||
int j;
|
||||
int k;
|
||||
if (i > 9) {
|
||||
j = i-10;
|
||||
k =2;
|
||||
} else {
|
||||
j = i;
|
||||
k =1;
|
||||
}
|
||||
b[i] = new Misile (100+(j*150), k*100, misileMechant1, time);
|
||||
}
|
||||
|
||||
// Sons
|
||||
if (son) {
|
||||
sonLancemissile = new SoundFile(this, "data/sons/lancemissile.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);
|
||||
}
|
||||
|
||||
void draw() {
|
||||
|
||||
// if ( nombreEnemiReste == 0 && ship.pv > 0) {
|
||||
//
|
||||
//
|
||||
// }
|
||||
//debug:
|
||||
//println(nombreEnemiReste);
|
||||
|
||||
|
||||
miseAJourDuDeplacement();
|
||||
|
||||
//Affiche l'image de fond (l'espace)
|
||||
background(space);
|
||||
|
||||
// Si un missile du ship est en cours (actif)
|
||||
if (lancermisile) {
|
||||
//on le fait avencer
|
||||
ym = ym - 20;
|
||||
// Si le missile sort en haut de l'écran
|
||||
if (ym < 0) {
|
||||
ym = y;
|
||||
xm = x;
|
||||
lancermisile = false;
|
||||
}
|
||||
// Affiche l'image du missile
|
||||
image(misile, xm, ym);
|
||||
} else {
|
||||
//Sinon (missile non actif)
|
||||
//on le affiche en dessous du vaiseau si encore vivant
|
||||
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
|
||||
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();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Affiche l'image du vaiseau
|
||||
ship.affiche_et_mets_a_jour_le_ship(x, y);
|
||||
|
||||
|
||||
//Affiche le boss Classe 1
|
||||
text("énemis restant: " + nombreEnemiReste, 120, 20);
|
||||
if ( nombreEnemiReste <= 0) {
|
||||
boss.affiche_et_mets_a_jour_le_boss();
|
||||
}
|
||||
|
||||
// Mise à jour du texte de l'écran :
|
||||
text("frame: " + frameCount, 10, 20);
|
||||
text("Time: " + millis() / 1000, 10, 35);
|
||||
text("PV: " + ship.pv, width - 60, 20);
|
||||
|
||||
if (ship.pv == - 0) {
|
||||
// Installation du timer
|
||||
if (timer == 0) timer = millis() + timerGameOver;
|
||||
|
||||
// Vérification du temps par rapport au timer
|
||||
//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);
|
||||
}
|
||||
|
||||
if (boss.pv <= 3){
|
||||
// met a jour les méchants très méchants
|
||||
c[0].affiche_et_mets_a_jour_les_mechants();
|
||||
c[1].affiche_et_mets_a_jour_les_mechants();
|
||||
c[2].affiche_et_mets_a_jour_les_mechants();
|
||||
//nombreEnemiReste_vague2 =+ 3;
|
||||
}
|
||||
|
||||
//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
|
||||
// a[i].enemypv = 4;
|
||||
// nombreEnemiReste = nombreEnemi;
|
||||
//}
|
||||
//on crée des ennemis
|
||||
|
||||
// // 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
|
||||
// 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();
|
||||
// }
|
||||
//}
|
||||
|
||||
//for (int i = 0; i<nombreEnemi; i++) {
|
||||
// int j;
|
||||
// int k;
|
||||
// if (i > 9) {
|
||||
// j = i-10;
|
||||
// k =2;
|
||||
// } else {
|
||||
// j = i;
|
||||
// k =1;
|
||||
// }
|
||||
// a[i] = new Alien (100+(j*150), k*100, 3, mechant);
|
||||
//}
|
||||
|
||||
////on crée des misiles
|
||||
//for (int i = 0; i<nombreEnemi; i++) {
|
||||
// int j;
|
||||
// int k;
|
||||
// if (i > 9) {
|
||||
// j = i-10;
|
||||
// k =2;
|
||||
// } else {
|
||||
// j = i;
|
||||
// k =1;
|
||||
// }
|
||||
// b[i] = new Misile (100+(j*150), k*100, misileMechant1, time);
|
||||
//}
|
||||
//}
|
||||
|
||||
// // 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
|
||||
// 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();
|
||||
|
||||
}
|
||||
|
||||
//ça verifie tout le tenps si une touche utilise est preser
|
||||
void keyPressed() {
|
||||
|
||||
|
||||
if (key == 'f' ) { touchePresse = "f"; }
|
||||
if (key == 'z' && touchePresse == "f") {
|
||||
boss.pv = 2;
|
||||
//on tue tous les ennemis
|
||||
for (int i = 0; i<nombreEnemi; i++) {
|
||||
a[i].enemypv = 0;
|
||||
}
|
||||
|
||||
touchePresse = null;
|
||||
}
|
||||
|
||||
if (key == ' ' && ship.show) {
|
||||
lancermisile = true;
|
||||
//Joue le son...
|
||||
if (son && ym == y) sonLancemissile.play();
|
||||
}
|
||||
|
||||
//pour mettre en pause/continuer
|
||||
if (key == 'p') {
|
||||
pause = !pause;
|
||||
|
||||
|
||||
//Met en pause ou countinue
|
||||
if (pause) noLoop();
|
||||
else loop();
|
||||
}
|
||||
|
||||
|
||||
if (key == 'z' || key == 'Z' || (key == CODED && keyCode == UP) ) {
|
||||
moveYn = 1;
|
||||
}
|
||||
if (key == 's' || key == 'S' || (key == CODED && keyCode == DOWN) ) {
|
||||
moveYp = 1;
|
||||
}
|
||||
if (key == 'q' || key == 'Q' || (key == CODED && keyCode == LEFT) ) {
|
||||
moveXn = 1;
|
||||
}
|
||||
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;
|
||||
}
|
||||
if (key == 's' || key == 'S' || (key == CODED && keyCode == DOWN) ) {
|
||||
moveYp = 0;
|
||||
}
|
||||
if (key == 'q' || key == 'Q' || (key == CODED && keyCode == LEFT) ) {
|
||||
moveXn = 0;
|
||||
}
|
||||
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;
|
||||
|
||||
if (moveYp - moveYn == -1) {
|
||||
y = y - deplacement;
|
||||
if (y < 100) y = 100;
|
||||
}
|
||||
|
||||
if (moveYp - moveYn == 1) {
|
||||
y = y + deplacement;
|
||||
if (y > height - 100 ) y = height - 100;
|
||||
}
|
||||
|
||||
if (moveXp - moveXn == -1) {
|
||||
x = x - deplacement;
|
||||
if (x < 100) x = 100;
|
||||
}
|
||||
|
||||
if (moveXp - moveXn == 1) {
|
||||
x = x+ deplacement;
|
||||
if (x > width - 100 ) x = width - 100;
|
||||
}
|
||||
}
|
||||
|
||||
//Truc a faire à la fin...
|
||||
void stop() {
|
||||
}
|
||||
// ajouter le son ?
|
||||
boolean son = true;
|
||||
boolean boss_start = false;
|
||||
|
||||
|
||||
// ----------------------- \\
|
||||
|
||||
|
||||
// Importation librairies pour la gestion du sons
|
||||
import processing.sound.*;
|
||||
SoundFile sonLancemissile;
|
||||
SoundFile sonExposion;
|
||||
SoundFile sonCollision;
|
||||
SoundFile sonLaser_boss;
|
||||
|
||||
boolean test = false;
|
||||
int largeur = 1600;
|
||||
int hauteur = 900;
|
||||
PImage space, img_ship, misile, imgGameover, imgWin, imgboss1, laserboss1;
|
||||
String misileMechant1 = "data/images/misile - mechant.png";
|
||||
int x = largeur/2;
|
||||
int y = hauteur-100;
|
||||
int xm = x;
|
||||
int ym = y;
|
||||
int timerGameOver = 1500; // milliseconds d'attente avant affichage "Gameover"
|
||||
int timer = 0;
|
||||
int win;
|
||||
float time;
|
||||
boolean lancermisile = false;
|
||||
String touchePresse = null;
|
||||
//int nombreEnemiRestek = nombreEnemik;
|
||||
|
||||
Ship ship;
|
||||
Boss boss;
|
||||
|
||||
boolean[] level = new boolean[3];
|
||||
|
||||
int nombreEnemi = 20;
|
||||
int nombreEnemi_vague2 = 3;
|
||||
int nombreEnemiReste = nombreEnemi;
|
||||
Alien [] a = new Alien[nombreEnemi];
|
||||
Misile [] b = new Misile[nombreEnemi];
|
||||
Alien2 [] c = new Alien2[3];
|
||||
|
||||
//Etat de deplacement: 0 = aucun deplacement en cours
|
||||
int moveXp = 0; // 1 si deplacement vers le bas
|
||||
int moveXn = 0; // 1 si deplacement vers le haut
|
||||
int moveYp = 0; // 1 si deplacement vers la droite
|
||||
int moveYn = 0; // 1 si deplacement vers la gauche
|
||||
int moveBoost = 1;
|
||||
|
||||
boolean pause = false;
|
||||
|
||||
void setup() {
|
||||
|
||||
stroke(#000000);
|
||||
strokeWeight(1);
|
||||
textAlign(LEFT, TOP);
|
||||
textSize(12);
|
||||
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[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");
|
||||
imgGameover = loadImage("data/images/gameover.png");
|
||||
imgWin = loadImage("data/images/Win_game.png");
|
||||
imgboss1 = loadImage("data/images/vaiseau_enemi.png");
|
||||
laserboss1 = loadImage("data/images/laser_boss1.png");
|
||||
|
||||
//création du boss
|
||||
boss = new Boss(5, "vaiseau_enemi.png", 800, 171, 8);
|
||||
//on crée le ship
|
||||
ship = new Ship(x, y, 3, img_ship);
|
||||
|
||||
//on crée des ennemis
|
||||
for (int i = 0; i<nombreEnemi; i++) {
|
||||
int j;
|
||||
int k;
|
||||
if (i > 9) {
|
||||
j = i-10;
|
||||
k =2;
|
||||
} else {
|
||||
j = i;
|
||||
k =1;
|
||||
}
|
||||
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");
|
||||
}
|
||||
println("Affichage mechant");
|
||||
|
||||
|
||||
//on crée des misiles
|
||||
for (int i = 0; i<nombreEnemi; i++) {
|
||||
int j;
|
||||
int k;
|
||||
if (i > 9) {
|
||||
j = i-10;
|
||||
k =2;
|
||||
} else {
|
||||
j = i;
|
||||
k =1;
|
||||
}
|
||||
b[i] = new Misile (100+(j*150), k*100, misileMechant1, time);
|
||||
}
|
||||
|
||||
// Sons
|
||||
if (son) {
|
||||
sonLancemissile = new SoundFile(this, "data/sons/lancemissile.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);
|
||||
}
|
||||
|
||||
void draw() {
|
||||
|
||||
// if ( nombreEnemiReste == 0 && ship.pv > 0) {
|
||||
//
|
||||
//
|
||||
// }
|
||||
//debug:
|
||||
//println(nombreEnemiReste);
|
||||
|
||||
|
||||
miseAJourDuDeplacement();
|
||||
|
||||
//Affiche l'image de fond (l'espace)
|
||||
background(space);
|
||||
|
||||
// Si un missile du ship est en cours (actif)
|
||||
if (lancermisile) {
|
||||
//on le fait avencer
|
||||
ym = ym - 20;
|
||||
// Si le missile sort en haut de l'écran
|
||||
if (ym < 0) {
|
||||
ym = y;
|
||||
xm = x;
|
||||
lancermisile = false;
|
||||
}
|
||||
// Affiche l'image du missile
|
||||
image(misile, xm, ym);
|
||||
} else {
|
||||
//Sinon (missile non actif)
|
||||
//on le affiche en dessous du vaiseau si encore vivant
|
||||
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
|
||||
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();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Affiche l'image du vaiseau
|
||||
ship.affiche_et_mets_a_jour_le_ship(x, y);
|
||||
|
||||
|
||||
//Affiche le boss Classe 1
|
||||
text("énemis restant: " + nombreEnemiReste, 120, 20);
|
||||
if ( nombreEnemiReste <= 0) {
|
||||
boss.affiche_et_mets_a_jour_le_boss();
|
||||
}
|
||||
|
||||
// Mise à jour du texte de l'écran :
|
||||
text("frame: " + frameCount, 10, 20);
|
||||
text("Time: " + millis() / 1000, 10, 35);
|
||||
text("PV: " + ship.pv, width - 60, 20);
|
||||
|
||||
if (ship.pv == - 0) {
|
||||
// Installation du timer
|
||||
if (timer == 0) timer = millis() + timerGameOver;
|
||||
|
||||
// Vérification du temps par rapport au timer
|
||||
//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);
|
||||
}
|
||||
|
||||
if (boss.pv <= 3){
|
||||
// met a jour les méchants très méchants
|
||||
c[0].affiche_et_mets_a_jour_les_mechants();
|
||||
c[1].affiche_et_mets_a_jour_les_mechants();
|
||||
c[2].affiche_et_mets_a_jour_les_mechants();
|
||||
//nombreEnemiReste_vague2 =+ 3;
|
||||
}
|
||||
|
||||
if (nombreEnemiReste == -3){
|
||||
if (boss.pv == 0){
|
||||
//on crée des misiles auto-guidés
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
//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
|
||||
// a[i].enemypv = 4;
|
||||
// nombreEnemiReste = nombreEnemi;
|
||||
//}
|
||||
//on crée des ennemis
|
||||
|
||||
// // 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
|
||||
// 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();
|
||||
// }
|
||||
//}
|
||||
|
||||
//for (int i = 0; i<nombreEnemi; i++) {
|
||||
// int j;
|
||||
// int k;
|
||||
// if (i > 9) {
|
||||
// j = i-10;
|
||||
// k =2;
|
||||
// } else {
|
||||
// j = i;
|
||||
// k =1;
|
||||
// }
|
||||
// a[i] = new Alien (100+(j*150), k*100, 3, mechant);
|
||||
//}
|
||||
|
||||
////on crée des misiles
|
||||
//for (int i = 0; i<nombreEnemi; i++) {
|
||||
// int j;
|
||||
// int k;
|
||||
// if (i > 9) {
|
||||
// j = i-10;
|
||||
// k =2;
|
||||
// } else {
|
||||
// j = i;
|
||||
// k =1;
|
||||
// }
|
||||
// b[i] = new Misile (100+(j*150), k*100, misileMechant1, time);
|
||||
//}
|
||||
//}
|
||||
|
||||
// // 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
|
||||
// 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();
|
||||
|
||||
}
|
||||
|
||||
//ça verifie tout le tenps si une touche utilise est preser
|
||||
void keyPressed() {
|
||||
|
||||
|
||||
if (key == 'f' ) { touchePresse = "f"; }
|
||||
if (key == 'z' && touchePresse == "f") {
|
||||
boss.pv = 2;
|
||||
//on tue tous les ennemis
|
||||
for (int i = 0; i<nombreEnemi; i++) {
|
||||
a[i].enemypv = 0;
|
||||
}
|
||||
|
||||
touchePresse = null;
|
||||
}
|
||||
|
||||
if (key == ' ' && ship.show) {
|
||||
lancermisile = true;
|
||||
//Joue le son...
|
||||
if (son && ym == y) sonLancemissile.play();
|
||||
}
|
||||
|
||||
//pour mettre en pause/continuer
|
||||
if (key == 'p') {
|
||||
pause = !pause;
|
||||
|
||||
|
||||
//Met en pause ou countinue
|
||||
if (pause) noLoop();
|
||||
else loop();
|
||||
}
|
||||
|
||||
|
||||
if (key == 'z' || key == 'Z' || (key == CODED && keyCode == UP) ) {
|
||||
moveYn = 1;
|
||||
}
|
||||
if (key == 's' || key == 'S' || (key == CODED && keyCode == DOWN) ) {
|
||||
moveYp = 1;
|
||||
}
|
||||
if (key == 'q' || key == 'Q' || (key == CODED && keyCode == LEFT) ) {
|
||||
moveXn = 1;
|
||||
}
|
||||
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;
|
||||
}
|
||||
if (key == 's' || key == 'S' || (key == CODED && keyCode == DOWN) ) {
|
||||
moveYp = 0;
|
||||
}
|
||||
if (key == 'q' || key == 'Q' || (key == CODED && keyCode == LEFT) ) {
|
||||
moveXn = 0;
|
||||
}
|
||||
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;
|
||||
|
||||
if (moveYp - moveYn == -1) {
|
||||
y = y - deplacement;
|
||||
if (y < 100) y = 100;
|
||||
}
|
||||
|
||||
if (moveYp - moveYn == 1) {
|
||||
y = y + deplacement;
|
||||
if (y > height - 100 ) y = height - 100;
|
||||
}
|
||||
|
||||
if (moveXp - moveXn == -1) {
|
||||
x = x - deplacement;
|
||||
if (x < 100) x = 100;
|
||||
}
|
||||
|
||||
if (moveXp - moveXn == 1) {
|
||||
x = x+ deplacement;
|
||||
if (x > width - 100 ) x = width - 100;
|
||||
}
|
||||
}
|
||||
|
||||
//Truc a faire à la fin...
|
||||
void stop() {
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue