commit de la session du samedi 27/02/2021

This commit is contained in:
Stève Oriol 2021-02-27 16:26:11 +01:00
parent bf201c6bbb
commit 105520fec0
7 changed files with 296 additions and 214 deletions

View File

@ -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 += 16; 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() { 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;
} }
} }
} }

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

View File

@ -1,89 +1,89 @@
//ç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;*/
} }
void apparaitre() { void apparaitre() {
//affiche l'anime de explosion : //affiche l'anime de explosion :
if ( !show && NUMEROXEPLO<50 ) { if ( !show && NUMEROXEPLO<50 ) {
//// Methode avec calcul du nombre de zeros: //// 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] //// 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 nbCarateres = String.valueOf(NUMEROXEPLO).length();
//int nbZeros = 4 - nbCarateres; //int nbZeros = 4 - nbCarateres;
//String chainDeZero = new String(new char[nbZeros]).replace("\0", "0"); //String chainDeZero = new String(new char[nbZeros]).replace("\0", "0");
//enemy = loadImage("images/explosion/explosion"+chainDeZero+NUMEROXEPLO+".png"); //enemy = loadImage("images/explosion/explosion"+chainDeZero+NUMEROXEPLO+".png");
// Ou Methode avec un if : // Ou Methode avec un if :
if ( String.valueOf(NUMEROXEPLO).length()==1 ) enemy_explo = loadImage("data/images/explosion/explosion000"+NUMEROXEPLO+".png"); 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"); else enemy_explo = loadImage("data/images/explosion/explosion00"+NUMEROXEPLO+".png");
NUMEROXEPLO += 1; NUMEROXEPLO += 1;
} }
if (NUMEROXEPLO == 1 && son) { if (NUMEROXEPLO == 1 && son) {
sonExposion.play(); sonExposion.play();
nombreEnemiReste -= 1; nombreEnemiReste -= 1;
} }
//Affiche le mechant ou explosion s'il n'est pas détruis (l'anime de explosion est pas finie) //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); if (NUMEROXEPLO < 50) image(enemy_explo, x, y);
} }
void verifiercollisions() { void verifiercollisions() {
// Avec le missile // Avec le missile
if ( show && !( xm < x-40 || xm > x+40 ) && ym < y) { if ( show && !( xm < x-40 || xm > x+40 ) && ym < y) {
// on luis enleve un point de vie // on luis enleve un point de vie
enemypv = enemypv - 1; enemypv = enemypv - 1;
y = y - 20; y = y - 20;
//suprime le missile //suprime le missile
lancermisile = false; lancermisile = false;
} }
// Avec le ship // Avec le ship
// DEBUG : Affiche x et y dans la console // 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); //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 ) { if ( dist(ship.x, ship.y, x, y) < 130 ) {
// Averti le vaiseau de la collision // Averti le vaiseau de la collision
ship.collision = true; ship.collision = true;
// on luis enleve un point de vie // on luis enleve un point de vie
enemypv = enemypv - 1; enemypv = enemypv - 1;
y = y - 20; y = y - 20;
} }
//le mechant disparait si il a plus de vie : //le mechant disparait si il a plus de vie :
if ( enemypv == 0 ) { if ( enemypv == 0 ) {
show = false; show = false;
} }
} }
void affiche_et_mets_a_jour_les_mechants() { void affiche_et_mets_a_jour_les_mechants() {
verifiercollisions(); verifiercollisions();
apparaitre(); apparaitre();
} }
} }

View File

@ -1,19 +1,96 @@
//ici il faut faire un enemie qui te fonce dessus //ici il faut faire un enemie qui te fonce dessus
class Alien2 {
int pv = 2; class Alien2 {
double random;
public double random(){ int x,y;
random = Math.random()*(10-3); int enemypv = 2;
return random; boolean show;
} double random;
int NUMEROXEPLO = 0;
double cooldown_fonce = random(); PImage enemy_explo;
//le if doit etre dans une fonction ou une class ou void ... Alien2(int xt,int yt,int pv, String imgEenemyt){
x = xt;
void affichebob() { y = yt;
image(mechant2, largeur/2, hauteur/2); 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();
}
}

View File

@ -16,7 +16,7 @@ SoundFile sonLaser_boss;
boolean test = false; boolean test = false;
int largeur = 1600; int largeur = 1600;
int hauteur = 900; 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"; String misileMechant1 = "data/images/misile - mechant.png";
int x = largeur/2; int x = largeur/2;
int y = hauteur-100; int y = hauteur-100;
@ -62,17 +62,16 @@ void setup() {
imageMode(CENTER); imageMode(CENTER);
//là, ça charge les image dans leur varible //là, ça charge les images dans leurres varibles
space = loadImage("data/images/space.jpg"); space = loadImage("data/images/space.jpg");
img_ship = loadImage("data/images/redfighter_200x200.png"); img_ship = loadImage("data/images/redfighter_200x200.png");
misile = loadImage("data/images/misile.png"); misile = loadImage("data/images/misile.png");
//2 pour le skin 2 //2 pour le skin 2
mechant = loadImage("data/images/mechant_rouge_150x150.png");
imgGameover = loadImage("data/images/gameover.png"); imgGameover = loadImage("data/images/gameover.png");
imgWin = loadImage("data/images/Win_game.png"); imgWin = loadImage("data/images/Win_game.png");
imgboss1 = loadImage("data/images/vaiseau_enemi.png"); imgboss1 = loadImage("data/images/vaiseau_enemi.png");
laserboss1 = loadImage("data/images/laser_boss1.png"); laserboss1 = loadImage("data/images/laser_boss1.png");
mechant2 = loadImage("data/images/mechant_tres_mechant.png");
//on crée le ship //on crée le ship
ship = new Ship(x, y, 3, img_ship); ship = new Ship(x, y, 3, img_ship);
@ -87,8 +86,11 @@ void setup() {
j = i; j = i;
k =1; 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 //on crée des misiles
for (int i = 0; i<nombreEnemi; i++) { for (int i = 0; i<nombreEnemi; i++) {
@ -163,6 +165,10 @@ void setup() {
a[i].affiche_et_mets_a_jour_les_mechants(); a[i].affiche_et_mets_a_jour_les_mechants();
} }
} }
// met a jour les méchants très méchants
c[0].affiche_et_mets_a_jour_les_mechants();
// Affiche l'image du vaiseau // Affiche l'image du vaiseau
ship.affiche_et_mets_a_jour_le_ship(x, y); ship.affiche_et_mets_a_jour_le_ship(x, y);
@ -310,45 +316,44 @@ void setup() {
else loop(); else loop();
} }
if (key == CODED) {
if (keyCode == UP) { if (key == 'z' || key == 'Z' || (key == CODED && keyCode == UP) ) {
moveYn = 1; moveYn = 1;
}
if (keyCode == DOWN) {
moveYp = 1;
}
if (keyCode == LEFT) {
moveXn = 1;
}
if (keyCode == RIGHT) {
moveXp = 1;
}
if (keyCode == SHIFT) {
moveBoost = 2;
}
} }
if (key == 's' || key == 'S' || (key == CODED && keyCode == DOWN) ) {
moveYp = 1;
}
if (key == 'q' || key == 'Q' || (key == CODED && keyCode == LEFT) ) {
moveXn = 1;
}
if (key == 'd' || key == 'D' || (key == CODED && keyCode == RIGHT) ) {
moveXp = 1;
}
if (keyCode == SHIFT || key == 'Z' || key == 'Q' || key == 'S' || key == 'D') {
moveBoost = 2;
}
} }
//ça verifie tout le tenps si une touche utilise est relacher //ça verifie tout le tenps si une touche utilise est relacher
void keyReleased() { void keyReleased() {
if (key == CODED) { if (key == 'z' || key == 'Z' || (key == CODED && keyCode == UP) ) {
if (keyCode == UP) { moveYn = 0;
moveYn = 0;
}
if (keyCode == DOWN) {
moveYp = 0;
}
if (keyCode == LEFT) {
moveXn = 0;
}
if (keyCode == RIGHT) {
moveXp = 0;
}
if (keyCode == SHIFT) {
moveBoost = 1;
}
} }
if (key == 's' || key == 'S' || (key == CODED && keyCode == DOWN) ) {
moveYp = 0;
}
if (key == 'q' || key == 'Q' || (key == CODED && keyCode == LEFT) ) {
moveXn = 0;
}
if (key == 'd' || key == 'D' || (key == CODED && keyCode == RIGHT) ) {
moveXp = 0;
}
if (keyCode == SHIFT || key == 'Z' || key == 'Q' || key == 'S' || key == 'D') {
moveBoost = 1;
}
} }
//on calcule et on met a jour les coordonnées du vaisau //on calcule et on met a jour les coordonnées du vaisau