//ç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(); } }