commit de la session du samedi 27/02/2021
This commit is contained in:
parent
bf201c6bbb
commit
105520fec0
126
Misile.pde
126
Misile.pde
|
|
@ -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 |
178
mechant.pde
178
mechant.pde
|
|
@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue