diff --git a/Misile.pde b/Misile.pde index 2f8c555..8c0e74f 100644 --- a/Misile.pde +++ b/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; + } + } + +} + diff --git a/data/images/mechant_150x150 - Copie.png b/data/images/mechant_150x150 - Copie.png new file mode 100644 index 0000000..5bcae3d Binary files /dev/null and b/data/images/mechant_150x150 - Copie.png differ diff --git a/misille_guides.pde b/misille_guides.pde new file mode 100644 index 0000000..70f1c49 --- /dev/null +++ b/misille_guides.pde @@ -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 = yt; + time = timet; + misile = loadImage(misilet); + } + + void guide() { + if (x < ship.x) { + while(x < ship.x){ + 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; + } + } + +} + diff --git a/space_inviders.pde b/space_inviders.pde index c1fcb76..33050b8 100644 --- a/space_inviders.pde +++ b/space_inviders.pde @@ -1,389 +1,405 @@ -// 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 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 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 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 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 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 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 d = true; +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, 999999, img_ship); + + //on crée des ennemis + for (int i = 0; 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 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 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 (boss.pv == 0){ + MisileGuides [] d = new MisileGuides[0]; + d[d] = new Misile (100+(j*150), k*100, misileMechant1, time); + //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 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 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 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() { + }