diff --git a/Space Invader/Envahisseurs/Graphique/src/Main/init.c b/Space Invader/Envahisseurs/Graphique/src/Main/init.c index 81d6c3d..ffeb138 100644 --- a/Space Invader/Envahisseurs/Graphique/src/Main/init.c +++ b/Space Invader/Envahisseurs/Graphique/src/Main/init.c @@ -26,7 +26,8 @@ struct entite joueur; int canon = 0; int missile = 0; -int enemie = 0; +int enemie1_1 = 0; +int enemie1_2 = 0; int bouillie = 0; int bombe = 0; @@ -44,15 +45,17 @@ int hitboxbombeH = 0; //Initialisation des variables globales pour le main void initialiser() { - canon = chargerLutin ("../../Lutins/invader_canon.bmp", + canon = chargerLutin ("../../Lutins/invader_canon.bmp", COULEUR_NOIR); - missile = chargerLutin ("../../Lutins/invader_missile.bmp", + missile = chargerLutin ("../../Lutins/invader_missile.bmp", COULEUR_NOIR); - enemie = chargerLutin ("../../Lutins/invader_monstre1_1.bmp", + enemie1_1 = chargerLutin ("../../Lutins/invader_monstre2_1.bmp", COULEUR_NOIR); - bouillie = chargerLutin ("../../Lutins/invader_monstre_bouillie.bmp", + enemie1_2 = chargerLutin ("../../Lutins/invader_monstre2_2.bmp", COULEUR_NOIR); - bombe = chargerLutin ("../../Lutins/invader_bombe.bmp", + bouillie = chargerLutin ("../../Lutins/invader_monstre_bouillie.bmp", + COULEUR_NOIR); + bombe = chargerLutin ("../../Lutins/invader_bombe.bmp", COULEUR_NOIR); tailleLutin (canon, @@ -62,8 +65,8 @@ void initialiser() tailleLutin (missile, &hitboxmissileL, &hitboxmissileH); - - tailleLutin (enemie, + //La taille des enemmies que j'utilise est la meme dans ces 2 variantes + tailleLutin (enemie1_1, &hitboxenemieL, &hitboxenemieH); @@ -133,10 +136,14 @@ char pagedemarrage() majSurface(); attendreEvenement (); - lireEvenement (&even,&input,NULL); + lireEvenement (&even, + &input, + NULL); while (input == '\0') { - lireEvenement (&even,&input,NULL); + lireEvenement (&even, + &input, + NULL); } return input; } @@ -149,8 +156,12 @@ void pagemort (int nbr_vie) int Hauteur = 0; char mort[] = "Vous etes mort"; char vie[TailleChaineMax] = "\0"; - sprintf(vie, "Nombre de vies restantes : %d", nbr_vie); - //sprint_f crée un warning mais celui-ci ne peut pas crée d'erreur + sprintf (vie, + "Nombre de vies restantes : %d", + nbr_vie); + //sprintf crée un warning mais celui-ci ne peut pas crée d'erreur + //Car la taille max de la chaine ne pourra pas excéder 30 si le nombre de vie reste "normal" + //sprintf_s ne fonctionne pas pour mon programme (invalid in C99) choisirPolice (policeDefaut, TaillePolice1); int LutinMort = lutinTexte(mort, COULEUR_ROUGE); diff --git a/Space Invader/Envahisseurs/Graphique/src/Main/init.h b/Space Invader/Envahisseurs/Graphique/src/Main/init.h index 92316a7..34fd8d5 100644 --- a/Space Invader/Envahisseurs/Graphique/src/Main/init.h +++ b/Space Invader/Envahisseurs/Graphique/src/Main/init.h @@ -1,6 +1,7 @@ extern int canon; extern int missile; -extern int enemie; +extern int enemie1_1; +extern int enemie1_2; extern int bouillie; extern int bombe; diff --git a/Space Invader/Envahisseurs/Graphique/src/Main/main.c b/Space Invader/Envahisseurs/Graphique/src/Main/main.c index b6f83e3..be61ad0 100644 --- a/Space Invader/Envahisseurs/Graphique/src/Main/main.c +++ b/Space Invader/Envahisseurs/Graphique/src/Main/main.c @@ -20,12 +20,20 @@ #define BombeRandomFixe 50 #define BombeRandomAlea 30 -#define VitesseTourdeBoucle 20 +//Pour augmenter les deplacements des enemies, vous pouvez: +//Augmenter VitesseDeplacementEnemie +//Tout les VitesseDeplacementEnemie tours de boucle les enemies se déplace #define VitesseDeplacementEnemie 2 +// Ou augmenter le PasEnemie (Ecart entre la position n et n+1) +#define PasEnemie 1 +#define AffichageImageEnemie 8 #define Delai0_2s 200 #define Delai0_5s 500 #define Delai2s 2000 + +#define VitesseTourdeBoucle 20 + int main() { creerSurface(TailleX,TailleY,Nom); @@ -42,7 +50,9 @@ int main() ajout_tete(&Ljoueur,joueur); - LigneEnemie(&ListeEnemies,NombreEnemieParLigne,NombreLigneEnemies); + LigneEnemie(&ListeEnemies, + NombreEnemieParLigne, + NombreLigneEnemies); int SensVague=1; char input = '\0'; @@ -51,7 +61,8 @@ int main() int CheckAlea = 0; int mort = 0; int nbr_vie = NombreVie; - evenement even = 0; + int QuelMonstre = 0; + evenement even = 0; int coeur = chargerLutin ("../../Lutins/Coeur.bmp", COULEUR_NOIR); @@ -93,6 +104,7 @@ int main() } //On ajoute de nouveau le joueur précedement supprimé à sa liste ajout_tete(&Ljoueur,joueur); + //Desallocation dynamique des listes DesallouerListe(&ListeTires); DesallouerListe(&ListeBombes); } @@ -125,10 +137,26 @@ int main() Ljoueur->entite.posy); //Affichage des ListeEnemies - AfficherEnemie(ListeEnemies, - enemie, - hitboxenemieL, - hitboxenemieH); + if (QuelMonstre > 2 * AffichageImageEnemie) + { + QuelMonstre = 0; + } + if (QuelMonstre <= AffichageImageEnemie) + { + AfficherEnemie (ListeEnemies, + enemie1_1, + hitboxenemieL, + hitboxenemieH); + QuelMonstre += 1; + } + else + { + AfficherEnemie (ListeEnemies, + enemie1_2, + hitboxenemieL, + hitboxenemieH); + QuelMonstre += 1; + } //Systeme pour faire drop une bombe dans un temps aléatoire //Mise en place d'un timer @@ -167,7 +195,7 @@ int main() { DeplacementEnemie(ListeEnemies, &SensVague, - 1); + PasEnemie); TourdeBoucle = 0; } @@ -176,10 +204,20 @@ int main() DeplacementBombe(&ListeBombes); //Supression si collision des Tires et Enemies - SupprimerEntitesEnCollision(&ListeTires,hitboxmissileL,hitboxmissileH,&ListeEnemies,hitboxenemieL,hitboxenemieH); + SupprimerEntitesEnCollision(&ListeTires, + hitboxmissileL, + hitboxmissileH, + &ListeEnemies, + hitboxenemieL, + hitboxenemieH); //Supression si collision des Bombes et Joueur - if (SupprimerEntitesEnCollision(&ListeBombes,hitboxbombeL,hitboxbombeH,&Ljoueur,hitboxcanonL,hitboxcanonH) == 1) + if (SupprimerEntitesEnCollision(&ListeBombes, + hitboxbombeL, + hitboxbombeH, + &Ljoueur, + hitboxcanonL, + hitboxcanonH) == 1) { mort = 1; majSurface(); @@ -187,7 +225,12 @@ int main() } //Supression si collision des Enemies et Joueur - if (SupprimerEntitesEnCollision(&ListeEnemies,hitboxenemieL,hitboxenemieH,&Ljoueur,hitboxcanonL,hitboxcanonH) == 1) + if (SupprimerEntitesEnCollision(&ListeEnemies, + hitboxenemieL, + hitboxenemieH, + &Ljoueur, + hitboxcanonL, + hitboxcanonH) == 1) { pageGameOver(); majSurface(); -- libgit2 0.21.2