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
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;
}
}
}

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

View File

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

View File

@ -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<nombreEnemi; i++) {
@ -163,6 +165,10 @@ void setup() {
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
ship.affiche_et_mets_a_jour_le_ship(x, y);
@ -310,45 +316,44 @@ void setup() {
else loop();
}
if (key == CODED) {
if (keyCode == UP) {
moveYn = 1;
}
if (keyCode == DOWN) {
moveYp = 1;
}
if (keyCode == LEFT) {
moveXn = 1;
}
if (keyCode == RIGHT) {
moveXp = 1;
}
if (keyCode == SHIFT) {
moveBoost = 2;
}
if (key == 'z' || key == 'Z' || (key == CODED && keyCode == UP) ) {
moveYn = 1;
}
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
void keyReleased() {
if (key == CODED) {
if (keyCode == UP) {
moveYn = 0;
}
if (keyCode == DOWN) {
moveYp = 0;
}
if (keyCode == LEFT) {
moveXn = 0;
}
if (keyCode == RIGHT) {
moveXp = 0;
}
if (keyCode == SHIFT) {
moveBoost = 1;
}
if (key == 'z' || key == 'Z' || (key == CODED && keyCode == UP) ) {
moveYn = 0;
}
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