Merge pull request 'demande de merge de arthaud dans master' (#1) from arthaud into master
Reviewed-on: https://git.netxtime.com/Artiop_GAMES/space_inviders/pulls/1
This commit is contained in:
commit
be64c360b6
248
Boss.pde
248
Boss.pde
|
|
@ -1,176 +1,72 @@
|
||||||
boolean boss_d_ou_g = false;
|
class Boss {
|
||||||
int boss_bouge = 800;
|
int pv;
|
||||||
int boss_y = 171;
|
float boss_time;
|
||||||
int boss_vitesse = 8;
|
int boss_vitesse;
|
||||||
boolean collision_laser = false;
|
PImage visu_boss;
|
||||||
float boss_cooldown = 5;
|
int boss_y;
|
||||||
float boss_time;
|
int boss_x; //égale à ancien "boss_bouge"
|
||||||
int boss_stop = 4;
|
boolean show = true;
|
||||||
int pv_baseboss = 5;
|
int NUMEROXEPLO = 0;
|
||||||
int boss_pv = pv_baseboss;
|
|
||||||
int Xa, Xb, Xc, Ya, Yb, Yc, Xd, Yd, Xe, Ye;
|
//var à récup
|
||||||
float time_game = millis()/1000;
|
boolean boss_d_ou_g = false;
|
||||||
float ABC, DBC, ACB, DCB, EBC, ECB;
|
boolean collision_laser = false;
|
||||||
int H_jpv = 25, W_jpv = 650, x_jpv, y_jpv = 20;
|
float boss_cooldown = 5;
|
||||||
int largeur_bar_vie_T = W_jpv;
|
int boss_stop = 4;
|
||||||
int largeur_bar_vie_cible = W_jpv;
|
int pv_baseboss = 5;
|
||||||
boolean invincible = false, son_Laser = false, clignote = false;
|
int boss_pv = pv_baseboss;
|
||||||
int invisi_time = 1000; // temps de d'invincibilité en millisecondes (2 secondes)
|
int Xa, Xb, Xc, Ya, Yb, Yc, Xd, Yd, Xe, Ye;
|
||||||
int deta_time, time_inv_boss;
|
float time_game = millis()/1000;
|
||||||
int deta_cligno_time = 150; // temps de clignotage en millisecondes
|
float ABC, DBC, ACB, DCB, EBC, ECB;
|
||||||
int time_cligno_boss;
|
int H_jpv = 25, W_jpv = 650, x_jpv, y_jpv = 20;
|
||||||
|
int largeur_bar_vie_T = W_jpv;
|
||||||
void boss() {
|
int largeur_bar_vie_cible = W_jpv;
|
||||||
|
boolean invincible = false, son_Laser = false, clignote = false;
|
||||||
time_game = millis()/1000;
|
int invisi_time = 1000; // temps de d'invincibilité en millisecondes (2 secondes)
|
||||||
println("second : "+ time_game);
|
int deta_time, time_inv_boss;
|
||||||
println("boss_time + boss_cooldown : " + boss_time + boss_cooldown);
|
int deta_cligno_time = 150; // temps de clignotage en millisecondes
|
||||||
if (boss_time + boss_cooldown < time_game && !invincible){
|
int time_cligno_boss;
|
||||||
boss_vitesse = 0;
|
|
||||||
image(laserboss1, boss_bouge, 380 + boss_y);
|
|
||||||
//joue le son du laser une seul fois
|
Boss (int pvboss, String visuboss, int xb, int yb, int bv){
|
||||||
if(!son_Laser){
|
boss_vitesse = bv;
|
||||||
son_Laser = true;
|
boss_x = xb;
|
||||||
sonLaser_boss.play();
|
boss_y = yb;
|
||||||
}
|
pv = pvboss;
|
||||||
//calcul dimension laser:
|
boss_time = millis()/1000;
|
||||||
//coordonnées point haut
|
visu_boss = loadImage("data/images/" + visuboss);
|
||||||
Xa = boss_bouge;
|
|
||||||
Ya = -100 + boss_y;
|
}
|
||||||
|
|
||||||
Xb = boss_bouge - 566;
|
void verifiercollisions(){
|
||||||
Yb = -100 + boss_y + 981;
|
|
||||||
|
}
|
||||||
Xc = boss_bouge + 566;
|
|
||||||
Yc = Yb;
|
void bouge_boss(){
|
||||||
|
|
||||||
//triangle(Xa, Ya, Xb, Yb, Xc, Yc);
|
}
|
||||||
|
|
||||||
//coordonnées base du vaisseau:
|
void apparaitre(){
|
||||||
Xd = x - 100;
|
//affiche l'anime de explosion :
|
||||||
Yd = y + 100;
|
if ( !show && NUMEROXEPLO<50 ) {
|
||||||
|
// Ou Methode avec un if :
|
||||||
Xe = x + 100;
|
if ( String.valueOf(NUMEROXEPLO).length()==1 ) visu_boss = loadImage("data/images/explosion/explosion000"+NUMEROXEPLO+".png");
|
||||||
Ye = Yd;
|
else visu_boss = loadImage("data/images/explosion/explosion00"+NUMEROXEPLO+".png");
|
||||||
|
NUMEROXEPLO += 1;
|
||||||
//calcul des angles
|
}
|
||||||
ABC = acos( ( ((Xc-Xb)*(Xa-Xb)) + ((Yc-Yb)*(Ya-Yb)) )/( sqrt(sq(Xc-Xb)+sq(Yc-Yb)) * sqrt(sq(Xa-Xb)+sq(Ya-Yb)) ) );
|
|
||||||
ACB = ABC;
|
if (NUMEROXEPLO == 1 && son) sonExposion.play();
|
||||||
//println("ABC : "+ ABC);
|
|
||||||
//DBC = acos( ( ((Xc-Xb)*(Xd-Xb)) + ((Yc-Yb)*(Yd-Yb)) )/( sqrt(sq(Xc-Xb)+sq(Yc-Yb)) * sqrt(sq(Xd-Xb)+sq(Yd-Yb)) ) );
|
//Affiche le ship ou explosion s'il n'est pas détruis (l'anime de explosion est pas finie)
|
||||||
DCB = acos( ( ((Xb-Xc)*(Xd-Xc)) + ((Yb-Yc)*(Yd-Yc)) )/( sqrt(sq(Xb-Xc)+sq(Yb-Yc)) * sqrt(sq(Xd-Xc)+sq(Yd-Yc)) ) );
|
if (NUMEROXEPLO < 50) image(visu_boss, boss_x, boss_y);
|
||||||
EBC = acos( ( ((Xc-Xb)*(Xe-Xb)) + ((Yc-Yb)*(Ye-Yb)) )/( sqrt(sq(Xc-Xb)+sq(Yc-Yb)) * sqrt(sq(Xe-Xb)+sq(Ye-Yb)) ) );
|
println("boss ..");
|
||||||
//println("DCB : "+ DCB + " / EBC : "+ EBC);
|
}
|
||||||
|
|
||||||
//line(Xd, Yd, Xe, Ye);
|
void affiche_et_mets_a_jour_le_boss(){
|
||||||
//println("Xb, Xe : " + Xb + " <> " + Xe);
|
verifiercollisions();
|
||||||
//test collisions avec le laser:
|
bouge_boss();
|
||||||
if (EBC > ABC || ACB < DCB) {
|
apparaitre();
|
||||||
collision_laser = false;
|
|
||||||
} else {
|
}
|
||||||
collision_laser = true;
|
|
||||||
ship.collision = true;
|
}
|
||||||
println("collision : " + collision_laser);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// boucle fin d'attaque
|
|
||||||
if (boss_time + boss_cooldown + boss_stop < time_game){
|
|
||||||
boss_cooldown = random(1, 7);
|
|
||||||
boss_vitesse = 8;
|
|
||||||
boss_time = time_game;
|
|
||||||
son_Laser = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
//println("boss_time + boss_cooldown + boss_stop : "+ boss_time + boss_cooldown + boss_stop);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!clignote){
|
|
||||||
image(imgboss1, boss_bouge, boss_y);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (boss_d_ou_g == true){ //si le boss vas vers la gauche
|
|
||||||
if (boss_bouge > 0){ //si le boss il n'est pas tout a gauche
|
|
||||||
boss_bouge -= boss_vitesse; //on le fais aller a gauche
|
|
||||||
} else { //sinon
|
|
||||||
boss_d_ou_g = false; //on lui dit d'aller a gauche
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (boss_d_ou_g == false && boss_bouge < width){
|
|
||||||
boss_bouge += boss_vitesse;
|
|
||||||
} else {
|
|
||||||
boss_d_ou_g = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//largeur en pixels en fonction des pv courants du boss
|
|
||||||
largeur_bar_vie_cible = W_jpv * boss_pv / pv_baseboss;
|
|
||||||
println ("T : " + largeur_bar_vie_T + " C : " + largeur_bar_vie_cible);
|
|
||||||
|
|
||||||
if (time_inv_boss + deta_time <= millis()){
|
|
||||||
if (largeur_bar_vie_T > largeur_bar_vie_cible){
|
|
||||||
largeur_bar_vie_T -- ;
|
|
||||||
invincible = true;
|
|
||||||
} else {
|
|
||||||
invincible = false;
|
|
||||||
}
|
|
||||||
time_inv_boss = millis();
|
|
||||||
}
|
|
||||||
|
|
||||||
// clignotement :
|
|
||||||
if (invincible && time_cligno_boss + deta_cligno_time <= millis()) {
|
|
||||||
time_cligno_boss = millis();
|
|
||||||
clignote = !clignote;
|
|
||||||
} else if (!invincible) {
|
|
||||||
clignote = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
//jauge des pv du boss
|
|
||||||
x_jpv = width/2-W_jpv/2;
|
|
||||||
fill(255, 255, 255, 40);
|
|
||||||
noStroke();
|
|
||||||
rect(x_jpv, y_jpv, W_jpv, H_jpv, H_jpv / 2);
|
|
||||||
fill(#AE0202, 230);
|
|
||||||
noStroke();
|
|
||||||
rect(
|
|
||||||
x_jpv + (W_jpv - largeur_bar_vie_T)/2, // coordonnées X de la bar de vie
|
|
||||||
y_jpv, // coordonnées Y de la bar de vie
|
|
||||||
largeur_bar_vie_T,
|
|
||||||
H_jpv, // hauteur de la bar de vie
|
|
||||||
H_jpv / 2 // pour arrondir les angles de la bar de vie du boss
|
|
||||||
);
|
|
||||||
fill(255);
|
|
||||||
textSize(H_jpv / 1.5);
|
|
||||||
textAlign(CENTER, CENTER);
|
|
||||||
text(boss_pv + " / " + pv_baseboss , x_jpv + W_jpv / 2 , y_jpv + H_jpv /2);
|
|
||||||
textAlign(LEFT, BOTTOM);
|
|
||||||
textSize(12);
|
|
||||||
strokeWeight(2);
|
|
||||||
stroke(#ffffff);
|
|
||||||
noFill();
|
|
||||||
rect(x_jpv, y_jpv, W_jpv, H_jpv, H_jpv / 2);
|
|
||||||
fill(255, 255, 255);
|
|
||||||
strokeWeight(1);
|
|
||||||
stroke(#000000);
|
|
||||||
|
|
||||||
if ( dist(ship.x, ship.y, boss_bouge, boss_y) < 200 ) {
|
|
||||||
// en gros le vaisseau éclate quand il touche le boss
|
|
||||||
ship.collision = true;
|
|
||||||
} else {
|
|
||||||
//si le missile est en contact avec le boss et qu'il n'est pas invincible le boss perd un point de vie
|
|
||||||
if ( dist(xm, ym, boss_bouge, boss_y) < 114 && !invincible ){
|
|
||||||
boss_pv = boss_pv - 1;
|
|
||||||
sonCollision.play();
|
|
||||||
time_inv_boss = time_cligno_boss = millis();
|
|
||||||
//calcul delai en miliseconds pour chaque pixels a supprimer de la bars de vie en fonction du temps d'invincibilité du boss
|
|
||||||
// temps / pixels a suprimmer de la barre :
|
|
||||||
deta_time = invisi_time / (W_jpv - (W_jpv * boss_pv / pv_baseboss));
|
|
||||||
//println("boss_pv : " + boss_pv + " :: deta_time : " + deta_time);
|
|
||||||
lancermisile = false;
|
|
||||||
clignote = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,179 @@
|
||||||
|
boolean boss_d_ou_g = false;
|
||||||
|
int boss_bouge = 800;
|
||||||
|
int boss_y = 171;
|
||||||
|
int boss_vitesse = 8;
|
||||||
|
boolean collision_laser = false;
|
||||||
|
float boss_cooldown = 5;
|
||||||
|
float boss_time;
|
||||||
|
int boss_stop = 4;
|
||||||
|
int pv_baseboss = 5;
|
||||||
|
int boss_pv = pv_baseboss;
|
||||||
|
int Xa, Xb, Xc, Ya, Yb, Yc, Xd, Yd, Xe, Ye;
|
||||||
|
float time_game = millis()/1000;
|
||||||
|
float ABC, DBC, ACB, DCB, EBC, ECB;
|
||||||
|
int H_jpv = 25, W_jpv = 650, x_jpv, y_jpv = 20;
|
||||||
|
int largeur_bar_vie_T = W_jpv;
|
||||||
|
int largeur_bar_vie_cible = W_jpv;
|
||||||
|
boolean invincible = false, son_Laser = false, clignote = false;
|
||||||
|
int invisi_time = 1000; // temps de d'invincibilité en millisecondes (2 secondes)
|
||||||
|
int deta_time, time_inv_boss;
|
||||||
|
int deta_cligno_time = 150; // temps de clignotage en millisecondes
|
||||||
|
int time_cligno_boss;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void bosss() {
|
||||||
|
|
||||||
|
time_game = millis()/1000;
|
||||||
|
println("second : "+ time_game);
|
||||||
|
println("boss_time + boss_cooldown : " + boss_time + boss_cooldown);
|
||||||
|
if (boss_time + boss_cooldown < time_game && !invincible){
|
||||||
|
boss_vitesse = 0;
|
||||||
|
image(laserboss1, boss_bouge, 380 + boss_y);
|
||||||
|
//joue le son du laser une seul fois
|
||||||
|
if(!son_Laser){
|
||||||
|
son_Laser = true;
|
||||||
|
sonLaser_boss.play();
|
||||||
|
}
|
||||||
|
//calcul dimension laser:
|
||||||
|
//coordonnées point haut
|
||||||
|
Xa = boss_bouge;
|
||||||
|
Ya = -100 + boss_y;
|
||||||
|
|
||||||
|
Xb = boss_bouge - 566;
|
||||||
|
Yb = -100 + boss_y + 981;
|
||||||
|
|
||||||
|
Xc = boss_bouge + 566;
|
||||||
|
Yc = Yb;
|
||||||
|
|
||||||
|
//triangle(Xa, Ya, Xb, Yb, Xc, Yc);
|
||||||
|
|
||||||
|
//coordonnées base du vaisseau:
|
||||||
|
Xd = x - 100;
|
||||||
|
Yd = y + 100;
|
||||||
|
|
||||||
|
Xe = x + 100;
|
||||||
|
Ye = Yd;
|
||||||
|
|
||||||
|
//calcul des angles
|
||||||
|
ABC = acos( ( ((Xc-Xb)*(Xa-Xb)) + ((Yc-Yb)*(Ya-Yb)) )/( sqrt(sq(Xc-Xb)+sq(Yc-Yb)) * sqrt(sq(Xa-Xb)+sq(Ya-Yb)) ) );
|
||||||
|
ACB = ABC;
|
||||||
|
//println("ABC : "+ ABC);
|
||||||
|
//DBC = acos( ( ((Xc-Xb)*(Xd-Xb)) + ((Yc-Yb)*(Yd-Yb)) )/( sqrt(sq(Xc-Xb)+sq(Yc-Yb)) * sqrt(sq(Xd-Xb)+sq(Yd-Yb)) ) );
|
||||||
|
DCB = acos( ( ((Xb-Xc)*(Xd-Xc)) + ((Yb-Yc)*(Yd-Yc)) )/( sqrt(sq(Xb-Xc)+sq(Yb-Yc)) * sqrt(sq(Xd-Xc)+sq(Yd-Yc)) ) );
|
||||||
|
EBC = acos( ( ((Xc-Xb)*(Xe-Xb)) + ((Yc-Yb)*(Ye-Yb)) )/( sqrt(sq(Xc-Xb)+sq(Yc-Yb)) * sqrt(sq(Xe-Xb)+sq(Ye-Yb)) ) );
|
||||||
|
//println("DCB : "+ DCB + " / EBC : "+ EBC);
|
||||||
|
|
||||||
|
//line(Xd, Yd, Xe, Ye);
|
||||||
|
//println("Xb, Xe : " + Xb + " <> " + Xe);
|
||||||
|
//test collisions avec le laser:
|
||||||
|
if (EBC > ABC || ACB < DCB) {
|
||||||
|
collision_laser = false;
|
||||||
|
} else {
|
||||||
|
collision_laser = true;
|
||||||
|
ship.collision = true;
|
||||||
|
println("collision : " + collision_laser);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// boucle fin d'attaque
|
||||||
|
if (boss_time + boss_cooldown + boss_stop < time_game){
|
||||||
|
boss_cooldown = random(1, 7);
|
||||||
|
boss_vitesse = 8;
|
||||||
|
boss_time = time_game;
|
||||||
|
son_Laser = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
//println("boss_time + boss_cooldown + boss_stop : "+ boss_time + boss_cooldown + boss_stop);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!clignote){
|
||||||
|
image(imgboss1, boss_bouge, boss_y);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (boss_d_ou_g == true){ //si le boss vas vers la gauche
|
||||||
|
if (boss_bouge > 0){ //si le boss il n'est pas tout a gauche
|
||||||
|
boss_bouge -= boss_vitesse; //on le fais aller a gauche
|
||||||
|
} else { //sinon
|
||||||
|
boss_d_ou_g = false; //on lui dit d'aller a gauche
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (boss_d_ou_g == false && boss_bouge < width){
|
||||||
|
boss_bouge += boss_vitesse;
|
||||||
|
} else {
|
||||||
|
boss_d_ou_g = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//largeur en pixels en fonction des pv courants du boss
|
||||||
|
largeur_bar_vie_cible = W_jpv * boss_pv / pv_baseboss;
|
||||||
|
println ("T : " + largeur_bar_vie_T + " C : " + largeur_bar_vie_cible);
|
||||||
|
|
||||||
|
if (time_inv_boss + deta_time <= millis()){
|
||||||
|
if (largeur_bar_vie_T > largeur_bar_vie_cible){
|
||||||
|
largeur_bar_vie_T -- ;
|
||||||
|
invincible = true;
|
||||||
|
} else {
|
||||||
|
invincible = false;
|
||||||
|
}
|
||||||
|
time_inv_boss = millis();
|
||||||
|
}
|
||||||
|
|
||||||
|
// clignotement :
|
||||||
|
if (invincible && time_cligno_boss + deta_cligno_time <= millis()) {
|
||||||
|
time_cligno_boss = millis();
|
||||||
|
clignote = !clignote;
|
||||||
|
} else if (!invincible) {
|
||||||
|
clignote = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
//jauge des pv du boss
|
||||||
|
x_jpv = width/2-W_jpv/2;
|
||||||
|
fill(255, 255, 255, 40);
|
||||||
|
noStroke();
|
||||||
|
rect(x_jpv, y_jpv, W_jpv, H_jpv, H_jpv / 2);
|
||||||
|
fill(#AE0202, 230);
|
||||||
|
noStroke();
|
||||||
|
rect(
|
||||||
|
x_jpv + (W_jpv - largeur_bar_vie_T)/2, // coordonnées X de la bar de vie
|
||||||
|
y_jpv, // coordonnées Y de la bar de vie
|
||||||
|
largeur_bar_vie_T,
|
||||||
|
H_jpv, // hauteur de la bar de vie
|
||||||
|
H_jpv / 2 // pour arrondir les angles de la bar de vie du boss
|
||||||
|
);
|
||||||
|
fill(255);
|
||||||
|
textSize(H_jpv / 1.5);
|
||||||
|
textAlign(CENTER, CENTER);
|
||||||
|
text(boss_pv + " / " + pv_baseboss , x_jpv + W_jpv / 2 , y_jpv + H_jpv /2);
|
||||||
|
textAlign(LEFT, BOTTOM);
|
||||||
|
textSize(12);
|
||||||
|
strokeWeight(2);
|
||||||
|
stroke(#ffffff);
|
||||||
|
noFill();
|
||||||
|
rect(x_jpv, y_jpv, W_jpv, H_jpv, H_jpv / 2);
|
||||||
|
fill(255, 255, 255);
|
||||||
|
strokeWeight(1);
|
||||||
|
stroke(#000000);
|
||||||
|
|
||||||
|
if ( dist(ship.x, ship.y, boss_bouge, boss_y) < 200 ) {
|
||||||
|
// en gros le vaisseau éclate quand il touche le boss
|
||||||
|
ship.collision = true;
|
||||||
|
} else {
|
||||||
|
//si le missile est en contact avec le boss et qu'il n'est pas invincible le boss perd un point de vie
|
||||||
|
if ( dist(xm, ym, boss_bouge, boss_y) < 114 && !invincible ){
|
||||||
|
boss_pv = boss_pv - 1;
|
||||||
|
sonCollision.play();
|
||||||
|
time_inv_boss = time_cligno_boss = millis();
|
||||||
|
//calcul delai en miliseconds pour chaque pixels a supprimer de la bars de vie en fonction du temps d'invincibilité du boss
|
||||||
|
// temps / pixels a suprimmer de la barre :
|
||||||
|
deta_time = invisi_time / (W_jpv - (W_jpv * boss_pv / pv_baseboss));
|
||||||
|
//println("boss_pv : " + boss_pv + " :: deta_time : " + deta_time);
|
||||||
|
lancermisile = false;
|
||||||
|
clignote = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
126
Misile.pde
126
Misile.pde
|
|
@ -1,63 +1,63 @@
|
||||||
//code des Misiles des méchants
|
//code des Misiles des méchants
|
||||||
class Misile {
|
class Misile {
|
||||||
|
|
||||||
boolean show = false;
|
boolean show = false;
|
||||||
PImage misile;
|
PImage misile;
|
||||||
int y,x,yStart;
|
int y,x,yStart;
|
||||||
float time;
|
float time;
|
||||||
|
|
||||||
Misile(int xt,int yt,String misilet,float timet) {
|
Misile(int xt,int yt,String misilet,float timet) {
|
||||||
x = xt;
|
x = xt;
|
||||||
y = yStart = yt;
|
y = yStart = yt;
|
||||||
time = timet;
|
time = timet;
|
||||||
misile = loadImage(misilet);
|
misile = loadImage(misilet);
|
||||||
}
|
}
|
||||||
|
|
||||||
void apparaitre() {
|
void apparaitre() {
|
||||||
image(misile, x, y);
|
image(misile, x, y);
|
||||||
}
|
}
|
||||||
|
|
||||||
void verifiercollisions() {
|
void verifiercollisions() {
|
||||||
|
|
||||||
// Si un missile est en cours
|
// Si un missile est en cours
|
||||||
if (show) {
|
if (show) {
|
||||||
|
|
||||||
// Si le missile sort en bas de l'écran
|
// Si le missile sort en bas de l'écran
|
||||||
if (y > hauteur) {
|
if (y > hauteur) {
|
||||||
//on supprime le missile
|
//on supprime le missile
|
||||||
show = false;
|
show = false;
|
||||||
//on remet le y du missile pour le prochain
|
//on remet le y du missile pour le prochain
|
||||||
y = yStart;
|
y = yStart;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( dist(ship.x, ship.y, x, y) < 130 ) {
|
if ( dist(ship.x, ship.y, x, y) < 130 ) {
|
||||||
// Averti le vaiseau de la collision avec le missile
|
// Averti le vaiseau de la collision avec le missile
|
||||||
ship.collision = true;
|
ship.collision = true;
|
||||||
sonCollision.play();
|
sonCollision.play();
|
||||||
|
|
||||||
// supprime le missile
|
// supprime le missile
|
||||||
show = false;
|
show = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void tomber() {
|
void tomber() {
|
||||||
y += 6;
|
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() {
|
void affiche_et_mets_a_jour_le_missile() {
|
||||||
if (show) {
|
if (show) {
|
||||||
tomber();
|
tomber();
|
||||||
verifiercollisions();
|
verifiercollisions();
|
||||||
apparaitre();
|
apparaitre();
|
||||||
} else {
|
} else {
|
||||||
//Si pas de missile actif on peut en lancer un de temps en temps si le ship et toujours en vie:
|
//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
|
// 0.1% du temps
|
||||||
if ( ship.pv != 0 && random(1000) < 1 ) show = true;
|
if ( ship.pv != 0 && random(1000) < 1 ) show = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,3 +12,4 @@ liens utiles:
|
||||||
- https://processing.org/examples/arrayobjects.html
|
- https://processing.org/examples/arrayobjects.html
|
||||||
- https://processing.org/examples/movingoncurves.html
|
- https://processing.org/examples/movingoncurves.html
|
||||||
|
|
||||||
|
à suivre...
|
||||||
Binary file not shown.
Binary file not shown.
|
After Width: | Height: | Size: 40 KiB |
|
|
@ -1,16 +1,16 @@
|
||||||
//ça c'est TOUT le code qui dit ce que c'est un enemy
|
//ça c'est TOUT le code qui dit ce que c'est un enemy
|
||||||
class Alien {
|
class Alien {
|
||||||
|
|
||||||
int x,y,enemypv;
|
int x,y, enemypv;
|
||||||
PImage enemy_explo;
|
PImage enemy_explo;
|
||||||
boolean show;
|
boolean show;
|
||||||
float time;
|
float time;
|
||||||
int NUMEROXEPLO = 0;
|
int NUMEROXEPLO = 0;
|
||||||
|
|
||||||
Alien(int xt,int yt,int pv, PImage enemyt /*float timet*/){
|
Alien(int xt,int yt,int pv, String imgEenemyt /*float timet*/){
|
||||||
x = xt;
|
x = xt;
|
||||||
y = yt;
|
y = yt;
|
||||||
enemy_explo = enemyt;
|
enemy_explo = loadImage("data/images/" + imgEenemyt);
|
||||||
show = true;
|
show = true;
|
||||||
enemypv = pv;
|
enemypv = pv;
|
||||||
/*time = timet;*/
|
/*time = timet;*/
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,116 @@
|
||||||
|
//ici il faut faire un enemie qui bouge
|
||||||
|
|
||||||
|
class Alien2 {
|
||||||
|
|
||||||
|
int blob, blob2;
|
||||||
|
int x,y;
|
||||||
|
int enemypv;
|
||||||
|
boolean show;
|
||||||
|
int randomy,randomx;
|
||||||
|
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 alea_bouge(){
|
||||||
|
|
||||||
|
randomy = (int) random(0,900);
|
||||||
|
randomx = (int) random(0,1600);
|
||||||
|
frameRate(600);
|
||||||
|
if (frameCount % 600 == 0) {
|
||||||
|
x = randomx;
|
||||||
|
y = randomy;
|
||||||
|
println ("random = "+randomy);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
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 - 50;
|
||||||
|
|
||||||
|
//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;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( nombreEnemiReste == 0 && boss_pv == 0) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//le mechant disparait si il a plus de vie :
|
||||||
|
if ( enemypv == 0 ) {
|
||||||
|
show = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//public int random(){
|
||||||
|
// random = (int) Math.random()*(10-4);
|
||||||
|
// return random;
|
||||||
|
//}
|
||||||
|
|
||||||
|
int cooldown_fonce = (int)random(10);
|
||||||
|
|
||||||
|
/*
|
||||||
|
//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() {
|
||||||
|
println("affiche_et_mets_a_jour_les_mechants :");
|
||||||
|
verifiercollisions();
|
||||||
|
apparaitre();
|
||||||
|
alea_bouge();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
int pv_tres_mechant = 2;
|
|
||||||
|
|
@ -1,370 +1,397 @@
|
||||||
// ajouter le son ?
|
// ajouter le son ?
|
||||||
boolean son = true;
|
boolean son = true;
|
||||||
boolean boss_start = false;
|
boolean boss_start = false;
|
||||||
|
|
||||||
|
|
||||||
// ----------------------- \\
|
// ----------------------- \\
|
||||||
|
|
||||||
|
|
||||||
// Importation librairies pour la gestion du sons
|
// Importation librairies pour la gestion du sons
|
||||||
import processing.sound.*;
|
import processing.sound.*;
|
||||||
SoundFile sonLancemissile;
|
SoundFile sonLancemissile;
|
||||||
SoundFile sonExposion;
|
SoundFile sonExposion;
|
||||||
SoundFile sonCollision;
|
SoundFile sonCollision;
|
||||||
SoundFile sonLaser_boss;
|
SoundFile sonLaser_boss;
|
||||||
|
|
||||||
int largeur = 1600;
|
boolean test = false;
|
||||||
int hauteur = 900;
|
int largeur = 1600;
|
||||||
PImage space, img_ship, misile, mechant, imgGameover, imgWin, imgboss1, laserboss1;
|
int hauteur = 900;
|
||||||
String misileMechant1 = "data/images/misile - mechant.png";
|
PImage space, img_ship, misile, imgGameover, imgWin, imgboss1, laserboss1;
|
||||||
int x = largeur/2;
|
String misileMechant1 = "data/images/misile - mechant.png";
|
||||||
int y = hauteur-100;
|
int x = largeur/2;
|
||||||
int xm = x;
|
int y = hauteur-100;
|
||||||
int ym = y;
|
int xm = x;
|
||||||
int timerGameOver = 1500; // milliseconds d'attente avant affichage "Gameover"
|
int ym = y;
|
||||||
int timer = 0;
|
int timerGameOver = 1500; // milliseconds d'attente avant affichage "Gameover"
|
||||||
int win;
|
int timer = 0;
|
||||||
float time;
|
int win;
|
||||||
boolean lancermisile = false;
|
float time;
|
||||||
String touchePresse = null;
|
boolean lancermisile = false;
|
||||||
|
String touchePresse = null;
|
||||||
Ship ship;
|
//int nombreEnemiRestek = nombreEnemik;
|
||||||
|
|
||||||
boolean[] level = new boolean[3];
|
Ship ship;
|
||||||
|
Boss boss;
|
||||||
int nombreEnemi = 20;
|
|
||||||
int nombreEnemiReste = nombreEnemi;
|
boolean[] level = new boolean[3];
|
||||||
Alien [] a = new Alien[nombreEnemi];
|
|
||||||
Misile [] b = new Misile[nombreEnemi];
|
int nombreEnemi = 20;
|
||||||
|
int nombreEnemik = 20;
|
||||||
//Etat de deplacement: 0 = aucun deplacement en cours
|
int nombreEnemiReste = nombreEnemi;
|
||||||
int moveXp = 0; // 1 si deplacement vers le bas
|
Alien [] a = new Alien[nombreEnemi];
|
||||||
int moveXn = 0; // 1 si deplacement vers le haut
|
Misile [] b = new Misile[nombreEnemi];
|
||||||
int moveYp = 0; // 1 si deplacement vers la droite
|
Alien2 [] c = new Alien2[3];
|
||||||
int moveYn = 0; // 1 si deplacement vers la gauche
|
|
||||||
int moveBoost = 1;
|
//Etat de deplacement: 0 = aucun deplacement en cours
|
||||||
|
int moveXp = 0; // 1 si deplacement vers le bas
|
||||||
boolean pause = false;
|
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;
|
||||||
void setup() {
|
|
||||||
|
boolean pause = false;
|
||||||
stroke(#000000);
|
|
||||||
strokeWeight(1);
|
void setup() {
|
||||||
textAlign(LEFT, TOP);
|
|
||||||
textSize(12);
|
stroke(#000000);
|
||||||
size(1600, 900);
|
strokeWeight(1);
|
||||||
imageMode(CENTER);
|
textAlign(LEFT, TOP);
|
||||||
|
textSize(12);
|
||||||
|
size(1600, 900);
|
||||||
//là, ça charge les image dans leur varible
|
imageMode(CENTER);
|
||||||
space = loadImage("data/images/space.jpg");
|
|
||||||
img_ship = loadImage("data/images/redfighter_200x200.png");
|
c[0] = new Alien2(800,350,10,"mechant_tres_mechant150x150.png");
|
||||||
misile = loadImage("data/images/misile.png");
|
c[1] = new Alien2(1200,350,10,"mechant_tres_mechant150x150.png");
|
||||||
//2 pour le skin 2
|
c[2] = new Alien2(400,350,10,"mechant_tres_mechant150x150.png");
|
||||||
mechant = loadImage("data/images/mechant_rouge_150x150.png");
|
|
||||||
imgGameover = loadImage("data/images/gameover.png");
|
|
||||||
imgWin = loadImage("data/images/Win_game.png");
|
//là, ça charge les images dans leurres varibles
|
||||||
imgboss1 = loadImage("data/images/vaiseau_enemi.png");
|
space = loadImage("data/images/space.jpg");
|
||||||
laserboss1 = loadImage("data/images/laser_boss1.png");
|
img_ship = loadImage("data/images/redfighter_200x200.png");
|
||||||
//on crée le ship
|
misile = loadImage("data/images/misile.png");
|
||||||
ship = new Ship(x, y, 3, img_ship);
|
imgGameover = loadImage("data/images/gameover.png");
|
||||||
|
imgWin = loadImage("data/images/Win_game.png");
|
||||||
//on crée des ennemis
|
imgboss1 = loadImage("data/images/vaiseau_enemi.png");
|
||||||
for (int i = 0; i<nombreEnemi; i++) {
|
laserboss1 = loadImage("data/images/laser_boss1.png");
|
||||||
int j;
|
|
||||||
int k;
|
//création du boss
|
||||||
if (i > 9) {
|
boss = new Boss(5, "vaiseau_enemi.png", 800, 171, 8);
|
||||||
j = i-10;
|
//on crée le ship
|
||||||
k =2;
|
ship = new Ship(x, y, 3, img_ship);
|
||||||
} else {
|
|
||||||
j = i;
|
//on crée des ennemis
|
||||||
k =1;
|
for (int i = 0; i<nombreEnemi; i++) {
|
||||||
}
|
int j;
|
||||||
a[i] = new Alien (100+(j*150), k*100, 3, mechant);
|
int k;
|
||||||
}
|
if (i > 9) {
|
||||||
|
j = i-10;
|
||||||
//on crée des misiles
|
k =2;
|
||||||
for (int i = 0; i<nombreEnemi; i++) {
|
} else {
|
||||||
int j;
|
j = i;
|
||||||
int k;
|
k =1;
|
||||||
if (i > 9) {
|
}
|
||||||
j = i-10;
|
a[i] = new Alien (100+(j*150), k*100, 1, "mechant_rouge_150x150.png");
|
||||||
k =2;
|
// a[i] = new Alien (100+(j*150), k*100, 3, "mechant_tres_mechant150x150.png");
|
||||||
} else {
|
}
|
||||||
j = i;
|
println("Affichage mechant");
|
||||||
k =1;
|
|
||||||
}
|
|
||||||
b[i] = new Misile (100+(j*150), k*100, misileMechant1, time);
|
|
||||||
}
|
//on crée des misiles
|
||||||
|
for (int i = 0; i<nombreEnemi; i++) {
|
||||||
// Sons
|
int j;
|
||||||
if (son) {
|
int k;
|
||||||
sonLancemissile = new SoundFile(this, "data/sons/lancemissile.mp3");
|
if (i > 9) {
|
||||||
sonExposion = new SoundFile(this, "data/sons/SFB-explosion2.mp3");
|
j = i-10;
|
||||||
sonCollision = new SoundFile(this, "data/sons/collision avec le vaisseau.mp3");
|
k =2;
|
||||||
sonLaser_boss = new SoundFile(this, "data/sons/Laser_boss.mp3");
|
} else {
|
||||||
}
|
j = i;
|
||||||
|
k =1;
|
||||||
//Vitesse : frame par seconde
|
}
|
||||||
frameRate(60);
|
b[i] = new Misile (100+(j*150), k*100, misileMechant1, time);
|
||||||
}
|
}
|
||||||
|
|
||||||
void draw() {
|
// Sons
|
||||||
|
if (son) {
|
||||||
// if ( nombreEnemiReste == 0 && ship.pv > 0) {
|
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");
|
||||||
//debug:
|
}
|
||||||
//println(nombreEnemiReste);
|
|
||||||
|
//Vitesse : frame par seconde
|
||||||
|
frameRate(60);
|
||||||
miseAJourDuDeplacement();
|
}
|
||||||
|
|
||||||
float d = random (1, 100);
|
void draw() {
|
||||||
|
|
||||||
//Affiche l'image de fond (l'espace)
|
// if ( nombreEnemiReste == 0 && ship.pv > 0) {
|
||||||
background(space);
|
//
|
||||||
|
//
|
||||||
// Si un missile du ship est en cours (actif)
|
// }
|
||||||
if (lancermisile) {
|
//debug:
|
||||||
//on le fait avencer
|
//println(nombreEnemiReste);
|
||||||
ym = ym - 20;
|
|
||||||
// Si le missile sort en haut de l'écran
|
|
||||||
if (ym < 0) {
|
miseAJourDuDeplacement();
|
||||||
ym = y;
|
|
||||||
xm = x;
|
//Affiche l'image de fond (l'espace)
|
||||||
lancermisile = false;
|
background(space);
|
||||||
}
|
|
||||||
// Affiche l'image du missile
|
// Si un missile du ship est en cours (actif)
|
||||||
image(misile, xm, ym);
|
if (lancermisile) {
|
||||||
} else {
|
//on le fait avencer
|
||||||
//Sinon (missile non actif)
|
ym = ym - 20;
|
||||||
//on le affiche en dessous du vaiseau si encore vivant
|
// Si le missile sort en haut de l'écran
|
||||||
if (ship.show) {
|
if (ym < 0) {
|
||||||
ym = y;
|
ym = y;
|
||||||
xm = x;
|
xm = x;
|
||||||
}
|
lancermisile = false;
|
||||||
}
|
}
|
||||||
|
// Affiche l'image du missile
|
||||||
// Fait une boucle sur tout le tableau d'ennemies
|
image(misile, xm, ym);
|
||||||
for ( int i = 0; i<nombreEnemi; i++) {
|
} else {
|
||||||
//fait la mise a jour du missile que si l'ennemi est encore vivant ou missile en cours
|
//Sinon (missile non actif)
|
||||||
if (a[i].show || b[i].show) {
|
//on le affiche en dessous du vaiseau si encore vivant
|
||||||
b[i].affiche_et_mets_a_jour_le_missile();
|
if (ship.show) {
|
||||||
}
|
ym = y;
|
||||||
//fait la mise a jour du mechant que si il est encore vivant
|
xm = x;
|
||||||
if (a[i].NUMEROXEPLO < 50) {
|
}
|
||||||
a[i].affiche_et_mets_a_jour_les_mechants();
|
}
|
||||||
}
|
|
||||||
}
|
// Fait une boucle sur tout le tableau d'ennemies
|
||||||
|
for ( int i = 0; i<nombreEnemi; i++) {
|
||||||
// Affiche l'image du vaiseau
|
//fait la mise a jour du missile que si l'ennemi est encore vivant ou missile en cours
|
||||||
ship.affiche_et_mets_a_jour_le_ship(x, y);
|
if (a[i].show || b[i].show) {
|
||||||
|
b[i].affiche_et_mets_a_jour_le_missile();
|
||||||
|
}
|
||||||
//Affiche le boss Du niveau 1
|
//fait la mise a jour du mechant que si il est encore vivant
|
||||||
if ( nombreEnemiReste == 0 && boss_pv > 0) {
|
if (a[i].NUMEROXEPLO < 50) {
|
||||||
// image(imgWin, largeur/2, hauteur/2);
|
a[i].affiche_et_mets_a_jour_les_mechants();
|
||||||
if (boss_start == false) {
|
}
|
||||||
boss_start = true;
|
}
|
||||||
boss_time = millis()/1000;
|
|
||||||
}
|
|
||||||
boss();
|
// Affiche l'image du vaiseau
|
||||||
}
|
ship.affiche_et_mets_a_jour_le_ship(x, y);
|
||||||
|
|
||||||
// Mise à jour du texte de l'écran :
|
|
||||||
text("frame: " + frameCount, 10, 20);
|
//Affiche le boss Du niveau 1
|
||||||
text("Time: " + millis() / 1000, 10, 35);
|
if ( nombreEnemiReste == 0 && boss_pv > 0) {
|
||||||
text("PV: " + ship.pv, width - 60, 20);
|
// image(imgWin, largeur/2, hauteur/2);
|
||||||
|
if (boss_start == false) {
|
||||||
if (ship.pv == - 0) {
|
boss_start = true;
|
||||||
// Installation du timer
|
boss_time = millis()/1000;
|
||||||
if (timer == 0) timer = millis() + timerGameOver;
|
}
|
||||||
|
//bosss();
|
||||||
// Vérification du temps par rapport au timer
|
}
|
||||||
//println(millis() + " / timer : " + timer);
|
|
||||||
if ( millis() > timer ) {
|
//Affiche le boss Classe 1
|
||||||
image(imgGameover, largeur/2, hauteur/2);
|
if ( nombreEnemiReste == 0) {
|
||||||
println("GAME OVER");
|
boss.affiche_et_mets_a_jour_le_boss();
|
||||||
noLoop();
|
}
|
||||||
|
|
||||||
}
|
// Mise à jour du texte de l'écran :
|
||||||
}
|
text("frame: " + frameCount, 10, 20);
|
||||||
|
text("Time: " + millis() / 1000, 10, 35);
|
||||||
//Affiche le "WIN" Du niveau 1
|
text("PV: " + ship.pv, width - 60, 20);
|
||||||
if ( nombreEnemiReste == 0 && boss_pv == 0) {
|
|
||||||
//image(imgWin, largeur/2, hauteur/2);
|
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 ( nombreEnemiReste == 0 && boss_pv == 0) {
|
if ( millis() > timer ) {
|
||||||
//on load la deuxièmme vague de vaisseau
|
image(imgGameover, largeur/2, hauteur/2);
|
||||||
//on crée des ennemis
|
println("GAME OVER");
|
||||||
// Fait une boucle sur tout le tableau d'ennemies
|
noLoop();
|
||||||
//for ( int i = 0; i<nombreEnemi; i++) {
|
|
||||||
// //on ressucite les ennemis avec 4 pv
|
}
|
||||||
// a[i].enemypv = 4;
|
}
|
||||||
// nombreEnemiReste = nombreEnemi;
|
|
||||||
//}
|
//Affiche le "WIN" Du niveau 1
|
||||||
//on crée des ennemis
|
if ( nombreEnemiReste == 0 && boss_pv == 0) {
|
||||||
|
//image(imgWin, largeur/2, hauteur/2);
|
||||||
// Fait une boucle sur tout le tableau d'ennemies
|
}
|
||||||
for ( int i = 0; i<nombreEnemi; i++) {
|
if (boss_pv == 1){
|
||||||
//fait la mise a jour du missile que si l'ennemi est encore vivant ou missile en cours
|
// met a jour les méchants très méchants
|
||||||
if (a[i].show || b[i].show) {
|
c[0].affiche_et_mets_a_jour_les_mechants();
|
||||||
b[i].affiche_et_mets_a_jour_le_missile();
|
c[1].affiche_et_mets_a_jour_les_mechants();
|
||||||
}
|
c[2].affiche_et_mets_a_jour_les_mechants();
|
||||||
//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 ( 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++) {
|
//for ( int i = 0; i<nombreEnemi; i++) {
|
||||||
int j;
|
// //on ressucite les ennemis avec 4 pv
|
||||||
int k;
|
// a[i].enemypv = 4;
|
||||||
if (i > 9) {
|
// nombreEnemiReste = nombreEnemi;
|
||||||
j = i-10;
|
//}
|
||||||
k =2;
|
//on crée des ennemis
|
||||||
} else {
|
|
||||||
j = i;
|
// // Fait une boucle sur tout le tableau d'ennemies
|
||||||
k =1;
|
//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
|
||||||
a[i] = new Alien (100+(j*150), k*100, 3, mechant);
|
// if (a[i].show || b[i].show) {
|
||||||
}
|
// b[i].affiche_et_mets_a_jour_le_missile();
|
||||||
|
// }
|
||||||
//on crée des misiles
|
// //fait la mise a jour du mechant que si il est encore vivant
|
||||||
for (int i = 0; i<nombreEnemi; i++) {
|
// if (a[i].NUMEROXEPLO < 50) {
|
||||||
int j;
|
// a[i].affiche_et_mets_a_jour_les_mechants();
|
||||||
int k;
|
// }
|
||||||
if (i > 9) {
|
//}
|
||||||
j = i-10;
|
|
||||||
k =2;
|
//for (int i = 0; i<nombreEnemi; i++) {
|
||||||
} else {
|
// int j;
|
||||||
j = i;
|
// int k;
|
||||||
k =1;
|
// if (i > 9) {
|
||||||
}
|
// j = i-10;
|
||||||
b[i] = new Misile (100+(j*150), k*100, misileMechant1, time);
|
// k =2;
|
||||||
}
|
// } else {
|
||||||
}
|
// j = i;
|
||||||
|
// k =1;
|
||||||
// Fait une boucle sur tout le tableau d'ennemies
|
// }
|
||||||
for ( int i = 0; i<nombreEnemi; i++) {
|
// a[i] = new Alien (100+(j*150), k*100, 3, mechant);
|
||||||
//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();
|
////on crée des misiles
|
||||||
}
|
//for (int i = 0; i<nombreEnemi; i++) {
|
||||||
//fait la mise a jour du mechant que si il est encore vivant
|
// int j;
|
||||||
if (a[i].NUMEROXEPLO < 50) {
|
// int k;
|
||||||
a[i].affiche_et_mets_a_jour_les_mechants();
|
// if (i > 9) {
|
||||||
}
|
// j = i-10;
|
||||||
}
|
// k =2;
|
||||||
|
// } else {
|
||||||
}
|
// j = i;
|
||||||
|
// k =1;
|
||||||
//ça verifie tout le tenps si une touche utilise est preser
|
// }
|
||||||
void keyPressed() {
|
// b[i] = new Misile (100+(j*150), k*100, misileMechant1, time);
|
||||||
|
//}
|
||||||
//
|
}
|
||||||
if (key == 'f' ) { touchePresse = "f"; }
|
|
||||||
if (key == 'z' && touchePresse == "f") {
|
// // Fait une boucle sur tout le tableau d'ennemies
|
||||||
//on tue tous les ennemis
|
//for ( int i = 0; i<nombreEnemi; i++) {
|
||||||
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
|
||||||
a[i].enemypv = 0;
|
// if (a[i].show || b[i].show) {
|
||||||
boss_pv = 0;
|
// b[i].affiche_et_mets_a_jour_le_missile();
|
||||||
}
|
// }
|
||||||
|
// //fait la mise a jour du mechant que si il est encore vivant
|
||||||
touchePresse = null;
|
// if (a[i].NUMEROXEPLO < 50) {
|
||||||
}
|
// a[i].affiche_et_mets_a_jour_les_mechants();
|
||||||
|
// }
|
||||||
if (key == ' ' && ship.show) {
|
//}
|
||||||
lancermisile = true;
|
|
||||||
//Joue le son...
|
|
||||||
if (son && ym == y) sonLancemissile.play();
|
|
||||||
}
|
|
||||||
|
//if (nombreEnemi <= 0){
|
||||||
//pour mettre en pause/continuer
|
//test = true;
|
||||||
if (key == 'p') {
|
//}
|
||||||
pause = !pause;
|
//c[1] = new Alien2();
|
||||||
|
|
||||||
|
}
|
||||||
//Met en pause ou countinue
|
|
||||||
if (pause) noLoop();
|
//ça verifie tout le tenps si une touche utilise est preser
|
||||||
else loop();
|
void keyPressed() {
|
||||||
}
|
|
||||||
|
|
||||||
if (key == CODED) {
|
if (key == 'f' ) { touchePresse = "f"; }
|
||||||
if (keyCode == UP) {
|
if (key == 'z' && touchePresse == "f") {
|
||||||
moveYn = 1;
|
//on tue tous les ennemis
|
||||||
}
|
for (int i = 0; i<nombreEnemi; i++) {
|
||||||
if (keyCode == DOWN) {
|
a[i].enemypv = 0;
|
||||||
moveYp = 1;
|
// nombreEnemiRestek = 0;
|
||||||
}
|
boss_pv = 1;
|
||||||
if (keyCode == LEFT) {
|
}
|
||||||
moveXn = 1;
|
|
||||||
}
|
touchePresse = null;
|
||||||
if (keyCode == RIGHT) {
|
}
|
||||||
moveXp = 1;
|
|
||||||
}
|
if (key == ' ' && ship.show) {
|
||||||
if (keyCode == SHIFT) {
|
lancermisile = true;
|
||||||
moveBoost = 2;
|
//Joue le son...
|
||||||
}
|
if (son && ym == y) sonLancemissile.play();
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
//pour mettre en pause/continuer
|
||||||
//ça verifie tout le tenps si une touche utilise est relacher
|
if (key == 'p') {
|
||||||
void keyReleased() {
|
pause = !pause;
|
||||||
|
|
||||||
if (key == CODED) {
|
|
||||||
if (keyCode == UP) {
|
//Met en pause ou countinue
|
||||||
moveYn = 0;
|
if (pause) noLoop();
|
||||||
}
|
else loop();
|
||||||
if (keyCode == DOWN) {
|
}
|
||||||
moveYp = 0;
|
|
||||||
}
|
|
||||||
if (keyCode == LEFT) {
|
if (key == 'z' || key == 'Z' || (key == CODED && keyCode == UP) ) {
|
||||||
moveXn = 0;
|
moveYn = 1;
|
||||||
}
|
}
|
||||||
if (keyCode == RIGHT) {
|
if (key == 's' || key == 'S' || (key == CODED && keyCode == DOWN) ) {
|
||||||
moveXp = 0;
|
moveYp = 1;
|
||||||
}
|
}
|
||||||
if (keyCode == SHIFT) {
|
if (key == 'q' || key == 'Q' || (key == CODED && keyCode == LEFT) ) {
|
||||||
moveBoost = 1;
|
moveXn = 1;
|
||||||
}
|
}
|
||||||
}
|
if (key == 'd' || key == 'D' || (key == CODED && keyCode == RIGHT) ) {
|
||||||
}
|
moveXp = 1;
|
||||||
|
}
|
||||||
//on calcule et on met a jour les coordonnées du vaisau
|
if (keyCode == SHIFT || key == 'Z' || key == 'Q' || key == 'S' || key == 'D') {
|
||||||
void miseAJourDuDeplacement() {
|
moveBoost = 2;
|
||||||
|
}
|
||||||
int deplacement = 10*moveBoost;
|
|
||||||
|
}
|
||||||
if (moveYp - moveYn == -1) {
|
|
||||||
y = y - deplacement;
|
//ça verifie tout le tenps si une touche utilise est relacher
|
||||||
if (y < 100) y = 100;
|
void keyReleased() {
|
||||||
}
|
|
||||||
|
if (key == 'z' || key == 'Z' || (key == CODED && keyCode == UP) ) {
|
||||||
if (moveYp - moveYn == 1) {
|
moveYn = 0;
|
||||||
y = y + deplacement;
|
}
|
||||||
if (y > height - 100 ) y = height - 100;
|
if (key == 's' || key == 'S' || (key == CODED && keyCode == DOWN) ) {
|
||||||
}
|
moveYp = 0;
|
||||||
|
}
|
||||||
if (moveXp - moveXn == -1) {
|
if (key == 'q' || key == 'Q' || (key == CODED && keyCode == LEFT) ) {
|
||||||
x = x- deplacement;
|
moveXn = 0;
|
||||||
if (x < 100) x = 100;
|
}
|
||||||
}
|
if (key == 'd' || key == 'D' || (key == CODED && keyCode == RIGHT) ) {
|
||||||
|
moveXp = 0;
|
||||||
if (moveXp - moveXn == 1) {
|
}
|
||||||
x = x+ deplacement;
|
if (keyCode == SHIFT || key == 'Z' || key == 'Q' || key == 'S' || key == 'D') {
|
||||||
if (x > width - 100 ) x = width - 100;
|
moveBoost = 1;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
}
|
||||||
//Truc a faire à la fin...
|
|
||||||
void stop() {
|
//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