diff --git a/Misile.pde b/Misile.pde index b9ca896..db630f2 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 += 16; - } - - 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 += 14; //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/SRC/mechant_tres_mechant150x150.xcf b/SRC/mechant_tres_mechant150x150.xcf new file mode 100644 index 0000000..4dd9aad Binary files /dev/null and b/SRC/mechant_tres_mechant150x150.xcf differ diff --git a/data/images/mechant_tres_mechant.png b/data/images/mechant_tres_mechant.png deleted file mode 100644 index b3d4959..0000000 Binary files a/data/images/mechant_tres_mechant.png and /dev/null differ diff --git a/data/images/mechant_tres_mechant150x150.png b/data/images/mechant_tres_mechant150x150.png new file mode 100644 index 0000000..82e2bff Binary files /dev/null and b/data/images/mechant_tres_mechant150x150.png differ diff --git a/mechant.pde b/mechant.pde index f7a371b..23a5484 100644 --- a/mechant.pde +++ b/mechant.pde @@ -1,89 +1,89 @@ -//ça c'est TOUT le code qui dit ce que c'est un enemy -class Alien { - - int x,y,enemypv; - PImage enemy_explo; - boolean show; - float time; - int NUMEROXEPLO = 0; - - Alien(int xt,int yt,int pv, PImage enemyt /*float timet*/){ - x = xt; - y = yt; - enemy_explo = enemyt; - show = true; - enemypv = pv; - /*time = timet;*/ - } - - void apparaitre() { - - //affiche l'anime de explosion : - if ( !show && NUMEROXEPLO<50 ) { - - //// Methode avec calcul du nombre de zeros: - //// 4 - le nb de carateres de l'entier NUMEROXEPLO [4 correspond au nb de zero du nom des fichiers] - //int nbCarateres = String.valueOf(NUMEROXEPLO).length(); - //int nbZeros = 4 - nbCarateres; - //String chainDeZero = new String(new char[nbZeros]).replace("\0", "0"); - //enemy = loadImage("images/explosion/explosion"+chainDeZero+NUMEROXEPLO+".png"); - - // Ou Methode avec un if : - if ( String.valueOf(NUMEROXEPLO).length()==1 ) enemy_explo = loadImage("data/images/explosion/explosion000"+NUMEROXEPLO+".png"); - else enemy_explo = loadImage("data/images/explosion/explosion00"+NUMEROXEPLO+".png"); - - NUMEROXEPLO += 1; - - } - - if (NUMEROXEPLO == 1 && son) { - sonExposion.play(); - nombreEnemiReste -= 1; - - } - - //Affiche le mechant ou explosion s'il n'est pas détruis (l'anime de explosion est pas finie) - if (NUMEROXEPLO < 50) image(enemy_explo, x, y); - - - } - - - void verifiercollisions() { - - // Avec le missile - if ( show && !( xm < x-40 || xm > x+40 ) && ym < y) { - - // on luis enleve un point de vie - enemypv = enemypv - 1; - y = y - 20; - - //suprime le missile - lancermisile = false; - } - - // Avec le ship - // DEBUG : Affiche x et y dans la console - //println(dist(ship.x, ship.y, x, y) + "ship.x : " + ship.x + " < " + (x-75) + " : > " + (x+75) + " ship.y : " + ship.y + " <> " +y); - if ( dist(ship.x, ship.y, x, y) < 130 ) { - // Averti le vaiseau de la collision - ship.collision = true; - - // on luis enleve un point de vie - enemypv = enemypv - 1; - y = y - 20; - } - - //le mechant disparait si il a plus de vie : - if ( enemypv == 0 ) { - show = false; - } - } - - - void affiche_et_mets_a_jour_les_mechants() { - verifiercollisions(); - apparaitre(); - } - -} +//ça c'est TOUT le code qui dit ce que c'est un enemy +class Alien { + + int x,y,enemypv; + PImage enemy_explo; + boolean show; + float time; + int NUMEROXEPLO = 0; + + Alien(int xt,int yt,int pv, String imgEenemyt /*float timet*/){ + x = xt; + y = yt; + enemy_explo = loadImage("data/images/" + imgEenemyt); + show = true; + enemypv = pv; + /*time = timet;*/ + } + + void apparaitre() { + + //affiche l'anime de explosion : + if ( !show && NUMEROXEPLO<50 ) { + + //// Methode avec calcul du nombre de zeros: + //// 4 - le nb de carateres de l'entier NUMEROXEPLO [4 correspond au nb de zero du nom des fichiers] + //int nbCarateres = String.valueOf(NUMEROXEPLO).length(); + //int nbZeros = 4 - nbCarateres; + //String chainDeZero = new String(new char[nbZeros]).replace("\0", "0"); + //enemy = loadImage("images/explosion/explosion"+chainDeZero+NUMEROXEPLO+".png"); + + // Ou Methode avec un if : + if ( String.valueOf(NUMEROXEPLO).length()==1 ) enemy_explo = loadImage("data/images/explosion/explosion000"+NUMEROXEPLO+".png"); + else enemy_explo = loadImage("data/images/explosion/explosion00"+NUMEROXEPLO+".png"); + + NUMEROXEPLO += 1; + + } + + if (NUMEROXEPLO == 1 && son) { + sonExposion.play(); + nombreEnemiReste -= 1; + + } + + //Affiche le mechant ou explosion s'il n'est pas détruis (l'anime de explosion est pas finie) + if (NUMEROXEPLO < 50) image(enemy_explo, x, y); + + + } + + + void verifiercollisions() { + + // Avec le missile + if ( show && !( xm < x-40 || xm > x+40 ) && ym < y) { + + // on luis enleve un point de vie + enemypv = enemypv - 1; + y = y - 20; + + //suprime le missile + lancermisile = false; + } + + // Avec le ship + // DEBUG : Affiche x et y dans la console + //println(dist(ship.x, ship.y, x, y) + "ship.x : " + ship.x + " < " + (x-75) + " : > " + (x+75) + " ship.y : " + ship.y + " <> " +y); + if ( dist(ship.x, ship.y, x, y) < 130 ) { + // Averti le vaiseau de la collision + ship.collision = true; + + // on luis enleve un point de vie + enemypv = enemypv - 1; + y = y - 20; + } + + //le mechant disparait si il a plus de vie : + if ( enemypv == 0 ) { + show = false; + } + } + + + void affiche_et_mets_a_jour_les_mechants() { + verifiercollisions(); + apparaitre(); + } + +} diff --git a/mechant_tres_mechant.pde b/mechant_tres_mechant.pde index 6543ea3..908f028 100644 --- a/mechant_tres_mechant.pde +++ b/mechant_tres_mechant.pde @@ -1,19 +1,96 @@ -//ici il faut faire un enemie qui te fonce dessus - -class Alien2 { - -int pv = 2; -double random; -public double random(){ -random = Math.random()*(10-3); -return random; -} - -double cooldown_fonce = random(); - -//le if doit etre dans une fonction ou une class ou void ... - -void affichebob() { - image(mechant2, largeur/2, hauteur/2); - } -} +//ici il faut faire un enemie qui te fonce dessus + + + +class Alien2 { + + int x,y; + int enemypv = 2; + boolean show; + double random; + int NUMEROXEPLO = 0; + PImage enemy_explo; + + Alien2(int xt,int yt,int pv, String imgEenemyt){ + x = xt; + y = yt; + enemy_explo = loadImage("data/images/" + imgEenemyt); + show = true; + enemypv = pv; + } + + void apparaitre() { + + //affiche l'anime de explosion : + if ( !show && NUMEROXEPLO<50 ) { + // Ou Methode avec un if : + if ( String.valueOf(NUMEROXEPLO).length()==1 ) enemy_explo = loadImage("data/images/explosion/explosion000"+NUMEROXEPLO+".png"); + else enemy_explo = loadImage("data/images/explosion/explosion00"+NUMEROXEPLO+".png"); + NUMEROXEPLO += 1; + } + + if (NUMEROXEPLO == 1 && son) { + sonExposion.play(); + nombreEnemiReste -= 1; + } + + //Affiche le mechant ou explosion s'il n'est pas détruis (l'anime de explosion est pas finie) + if (NUMEROXEPLO < 50) image(enemy_explo, x, y); + + } + + void verifiercollisions() { + + // Avec le missile + if ( show && !( xm < x-40 || xm > x+40 ) && ym < y) { + + // on luis enleve un point de vie + enemypv = enemypv - 1; + y = y - 20; + + //suprime le missile + lancermisile = false; + } + + // Avec le ship + // DEBUG : Affiche x et y dans la console + //println(dist(ship.x, ship.y, x, y) + "ship.x : " + ship.x + " < " + (x-75) + " : > " + (x+75) + " ship.y : " + ship.y + " <> " +y); + if ( dist(ship.x, ship.y, x, y) < 130 ) { + // Averti le vaiseau de la collision + ship.collision = true; + + // on luis enleve un point de vie + enemypv = enemypv - 1; + y = y - 20; + } + + //le mechant disparait si il a plus de vie : + if ( enemypv == 0 ) { + show = false; + } + } + + public double random(){ + random = Math.random()*(10-3); + return random; + } + + double cooldown_fonce = random(); + +/* + //le if doit etre dans une fonction ou une class ou void ... + void setup() { + mechant2 = loadImage("data/images/mechant_tres_mechant150x150.png"); + } + + void draw() { + image(mechant2, 0, 0); + } +*/ + + void affiche_et_mets_a_jour_les_mechants() { + verifiercollisions(); + apparaitre(); + } + +} diff --git a/space_inviders.pde b/space_inviders.pde index 9a5eae6..fcdab63 100644 --- a/space_inviders.pde +++ b/space_inviders.pde @@ -16,7 +16,7 @@ SoundFile sonLaser_boss; boolean test = false; int largeur = 1600; int hauteur = 900; -PImage space, img_ship, misile, mechant, imgGameover, imgWin, imgboss1, laserboss1, mechant2; +PImage space, img_ship, misile, imgGameover, imgWin, imgboss1, laserboss1; String misileMechant1 = "data/images/misile - mechant.png"; int x = largeur/2; int y = hauteur-100; @@ -62,17 +62,16 @@ void setup() { imageMode(CENTER); - //là, ça charge les image dans leur varible - 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 + space = loadImage("data/images/space.jpg"); + img_ship = loadImage("data/images/redfighter_200x200.png"); + misile = loadImage("data/images/misile.png"); //2 pour le skin 2 - mechant = loadImage("data/images/mechant_rouge_150x150.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"); - mechant2 = loadImage("data/images/mechant_tres_mechant.png"); + imgWin = loadImage("data/images/Win_game.png"); + imgboss1 = loadImage("data/images/vaiseau_enemi.png"); + laserboss1 = loadImage("data/images/laser_boss1.png"); + //on crée le ship ship = new Ship(x, y, 3, img_ship); @@ -87,8 +86,11 @@ void setup() { j = i; k =1; } - a[i] = new Alien (100+(j*150), k*100, 3, mechant); + 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"); } + + c[0] = new Alien2(800,350,10,"mechant_tres_mechant150x150.png"); //on crée des misiles for (int i = 0; i