90 lines
5.4 KiB
Plaintext
90 lines
5.4 KiB
Plaintext
//ç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();
|
|
}
|
|
|
|
}
|