Commit a93e7b17d5219f6016d8c8a3cb6ed1e5613de035
1 parent
d0a3f297
Reste ReadMe et MakeFile a poffiné
Showing
3 changed files
with
79 additions
and
24 deletions
Show diff stats
Space Invader/Envahisseurs/Graphique/src/Main/init.c
@@ -26,7 +26,8 @@ struct entite joueur; | @@ -26,7 +26,8 @@ struct entite joueur; | ||
26 | 26 | ||
27 | int canon = 0; | 27 | int canon = 0; |
28 | int missile = 0; | 28 | int missile = 0; |
29 | -int enemie = 0; | 29 | +int enemie1_1 = 0; |
30 | +int enemie1_2 = 0; | ||
30 | int bouillie = 0; | 31 | int bouillie = 0; |
31 | int bombe = 0; | 32 | int bombe = 0; |
32 | 33 | ||
@@ -44,15 +45,17 @@ int hitboxbombeH = 0; | @@ -44,15 +45,17 @@ int hitboxbombeH = 0; | ||
44 | //Initialisation des variables globales pour le main | 45 | //Initialisation des variables globales pour le main |
45 | void initialiser() | 46 | void initialiser() |
46 | { | 47 | { |
47 | - canon = chargerLutin ("../../Lutins/invader_canon.bmp", | 48 | + canon = chargerLutin ("../../Lutins/invader_canon.bmp", |
48 | COULEUR_NOIR); | 49 | COULEUR_NOIR); |
49 | - missile = chargerLutin ("../../Lutins/invader_missile.bmp", | 50 | + missile = chargerLutin ("../../Lutins/invader_missile.bmp", |
50 | COULEUR_NOIR); | 51 | COULEUR_NOIR); |
51 | - enemie = chargerLutin ("../../Lutins/invader_monstre1_1.bmp", | 52 | + enemie1_1 = chargerLutin ("../../Lutins/invader_monstre2_1.bmp", |
52 | COULEUR_NOIR); | 53 | COULEUR_NOIR); |
53 | - bouillie = chargerLutin ("../../Lutins/invader_monstre_bouillie.bmp", | 54 | + enemie1_2 = chargerLutin ("../../Lutins/invader_monstre2_2.bmp", |
54 | COULEUR_NOIR); | 55 | COULEUR_NOIR); |
55 | - bombe = chargerLutin ("../../Lutins/invader_bombe.bmp", | 56 | + bouillie = chargerLutin ("../../Lutins/invader_monstre_bouillie.bmp", |
57 | + COULEUR_NOIR); | ||
58 | + bombe = chargerLutin ("../../Lutins/invader_bombe.bmp", | ||
56 | COULEUR_NOIR); | 59 | COULEUR_NOIR); |
57 | 60 | ||
58 | tailleLutin (canon, | 61 | tailleLutin (canon, |
@@ -62,8 +65,8 @@ void initialiser() | @@ -62,8 +65,8 @@ void initialiser() | ||
62 | tailleLutin (missile, | 65 | tailleLutin (missile, |
63 | &hitboxmissileL, | 66 | &hitboxmissileL, |
64 | &hitboxmissileH); | 67 | &hitboxmissileH); |
65 | - | ||
66 | - tailleLutin (enemie, | 68 | + //La taille des enemmies que j'utilise est la meme dans ces 2 variantes |
69 | + tailleLutin (enemie1_1, | ||
67 | &hitboxenemieL, | 70 | &hitboxenemieL, |
68 | &hitboxenemieH); | 71 | &hitboxenemieH); |
69 | 72 | ||
@@ -133,10 +136,14 @@ char pagedemarrage() | @@ -133,10 +136,14 @@ char pagedemarrage() | ||
133 | majSurface(); | 136 | majSurface(); |
134 | attendreEvenement (); | 137 | attendreEvenement (); |
135 | 138 | ||
136 | - lireEvenement (&even,&input,NULL); | 139 | + lireEvenement (&even, |
140 | + &input, | ||
141 | + NULL); | ||
137 | while (input == '\0') | 142 | while (input == '\0') |
138 | { | 143 | { |
139 | - lireEvenement (&even,&input,NULL); | 144 | + lireEvenement (&even, |
145 | + &input, | ||
146 | + NULL); | ||
140 | } | 147 | } |
141 | return input; | 148 | return input; |
142 | } | 149 | } |
@@ -149,8 +156,12 @@ void pagemort (int nbr_vie) | @@ -149,8 +156,12 @@ void pagemort (int nbr_vie) | ||
149 | int Hauteur = 0; | 156 | int Hauteur = 0; |
150 | char mort[] = "Vous etes mort"; | 157 | char mort[] = "Vous etes mort"; |
151 | char vie[TailleChaineMax] = "\0"; | 158 | char vie[TailleChaineMax] = "\0"; |
152 | - sprintf(vie, "Nombre de vies restantes : %d", nbr_vie); | ||
153 | - //sprint_f crée un warning mais celui-ci ne peut pas crée d'erreur | 159 | + sprintf (vie, |
160 | + "Nombre de vies restantes : %d", | ||
161 | + nbr_vie); | ||
162 | + //sprintf crée un warning mais celui-ci ne peut pas crée d'erreur | ||
163 | + //Car la taille max de la chaine ne pourra pas excéder 30 si le nombre de vie reste "normal" | ||
164 | + //sprintf_s ne fonctionne pas pour mon programme (invalid in C99) | ||
154 | 165 | ||
155 | choisirPolice (policeDefaut, TaillePolice1); | 166 | choisirPolice (policeDefaut, TaillePolice1); |
156 | int LutinMort = lutinTexte(mort, COULEUR_ROUGE); | 167 | int LutinMort = lutinTexte(mort, COULEUR_ROUGE); |
Space Invader/Envahisseurs/Graphique/src/Main/init.h
Space Invader/Envahisseurs/Graphique/src/Main/main.c
@@ -20,12 +20,20 @@ | @@ -20,12 +20,20 @@ | ||
20 | #define BombeRandomFixe 50 | 20 | #define BombeRandomFixe 50 |
21 | #define BombeRandomAlea 30 | 21 | #define BombeRandomAlea 30 |
22 | 22 | ||
23 | -#define VitesseTourdeBoucle 20 | 23 | +//Pour augmenter les deplacements des enemies, vous pouvez: |
24 | +//Augmenter VitesseDeplacementEnemie | ||
25 | +//Tout les VitesseDeplacementEnemie tours de boucle les enemies se déplace | ||
24 | #define VitesseDeplacementEnemie 2 | 26 | #define VitesseDeplacementEnemie 2 |
27 | +// Ou augmenter le PasEnemie (Ecart entre la position n et n+1) | ||
28 | +#define PasEnemie 1 | ||
29 | +#define AffichageImageEnemie 8 | ||
25 | 30 | ||
26 | #define Delai0_2s 200 | 31 | #define Delai0_2s 200 |
27 | #define Delai0_5s 500 | 32 | #define Delai0_5s 500 |
28 | #define Delai2s 2000 | 33 | #define Delai2s 2000 |
34 | + | ||
35 | +#define VitesseTourdeBoucle 20 | ||
36 | + | ||
29 | int main() | 37 | int main() |
30 | { | 38 | { |
31 | creerSurface(TailleX,TailleY,Nom); | 39 | creerSurface(TailleX,TailleY,Nom); |
@@ -42,7 +50,9 @@ int main() | @@ -42,7 +50,9 @@ int main() | ||
42 | ajout_tete(&Ljoueur,joueur); | 50 | ajout_tete(&Ljoueur,joueur); |
43 | 51 | ||
44 | 52 | ||
45 | - LigneEnemie(&ListeEnemies,NombreEnemieParLigne,NombreLigneEnemies); | 53 | + LigneEnemie(&ListeEnemies, |
54 | + NombreEnemieParLigne, | ||
55 | + NombreLigneEnemies); | ||
46 | int SensVague=1; | 56 | int SensVague=1; |
47 | 57 | ||
48 | char input = '\0'; | 58 | char input = '\0'; |
@@ -51,7 +61,8 @@ int main() | @@ -51,7 +61,8 @@ int main() | ||
51 | int CheckAlea = 0; | 61 | int CheckAlea = 0; |
52 | int mort = 0; | 62 | int mort = 0; |
53 | int nbr_vie = NombreVie; | 63 | int nbr_vie = NombreVie; |
54 | - evenement even = 0; | 64 | + int QuelMonstre = 0; |
65 | + evenement even = 0; | ||
55 | 66 | ||
56 | int coeur = chargerLutin ("../../Lutins/Coeur.bmp", | 67 | int coeur = chargerLutin ("../../Lutins/Coeur.bmp", |
57 | COULEUR_NOIR); | 68 | COULEUR_NOIR); |
@@ -93,6 +104,7 @@ int main() | @@ -93,6 +104,7 @@ int main() | ||
93 | } | 104 | } |
94 | //On ajoute de nouveau le joueur précedement supprimé à sa liste | 105 | //On ajoute de nouveau le joueur précedement supprimé à sa liste |
95 | ajout_tete(&Ljoueur,joueur); | 106 | ajout_tete(&Ljoueur,joueur); |
107 | + //Desallocation dynamique des listes | ||
96 | DesallouerListe(&ListeTires); | 108 | DesallouerListe(&ListeTires); |
97 | DesallouerListe(&ListeBombes); | 109 | DesallouerListe(&ListeBombes); |
98 | } | 110 | } |
@@ -125,10 +137,26 @@ int main() | @@ -125,10 +137,26 @@ int main() | ||
125 | Ljoueur->entite.posy); | 137 | Ljoueur->entite.posy); |
126 | 138 | ||
127 | //Affichage des ListeEnemies | 139 | //Affichage des ListeEnemies |
128 | - AfficherEnemie(ListeEnemies, | ||
129 | - enemie, | ||
130 | - hitboxenemieL, | ||
131 | - hitboxenemieH); | 140 | + if (QuelMonstre > 2 * AffichageImageEnemie) |
141 | + { | ||
142 | + QuelMonstre = 0; | ||
143 | + } | ||
144 | + if (QuelMonstre <= AffichageImageEnemie) | ||
145 | + { | ||
146 | + AfficherEnemie (ListeEnemies, | ||
147 | + enemie1_1, | ||
148 | + hitboxenemieL, | ||
149 | + hitboxenemieH); | ||
150 | + QuelMonstre += 1; | ||
151 | + } | ||
152 | + else | ||
153 | + { | ||
154 | + AfficherEnemie (ListeEnemies, | ||
155 | + enemie1_2, | ||
156 | + hitboxenemieL, | ||
157 | + hitboxenemieH); | ||
158 | + QuelMonstre += 1; | ||
159 | + } | ||
132 | 160 | ||
133 | //Systeme pour faire drop une bombe dans un temps aléatoire | 161 | //Systeme pour faire drop une bombe dans un temps aléatoire |
134 | //Mise en place d'un timer | 162 | //Mise en place d'un timer |
@@ -167,7 +195,7 @@ int main() | @@ -167,7 +195,7 @@ int main() | ||
167 | { | 195 | { |
168 | DeplacementEnemie(ListeEnemies, | 196 | DeplacementEnemie(ListeEnemies, |
169 | &SensVague, | 197 | &SensVague, |
170 | - 1); | 198 | + PasEnemie); |
171 | TourdeBoucle = 0; | 199 | TourdeBoucle = 0; |
172 | } | 200 | } |
173 | 201 | ||
@@ -176,10 +204,20 @@ int main() | @@ -176,10 +204,20 @@ int main() | ||
176 | DeplacementBombe(&ListeBombes); | 204 | DeplacementBombe(&ListeBombes); |
177 | 205 | ||
178 | //Supression si collision des Tires et Enemies | 206 | //Supression si collision des Tires et Enemies |
179 | - SupprimerEntitesEnCollision(&ListeTires,hitboxmissileL,hitboxmissileH,&ListeEnemies,hitboxenemieL,hitboxenemieH); | 207 | + SupprimerEntitesEnCollision(&ListeTires, |
208 | + hitboxmissileL, | ||
209 | + hitboxmissileH, | ||
210 | + &ListeEnemies, | ||
211 | + hitboxenemieL, | ||
212 | + hitboxenemieH); | ||
180 | 213 | ||
181 | //Supression si collision des Bombes et Joueur | 214 | //Supression si collision des Bombes et Joueur |
182 | - if (SupprimerEntitesEnCollision(&ListeBombes,hitboxbombeL,hitboxbombeH,&Ljoueur,hitboxcanonL,hitboxcanonH) == 1) | 215 | + if (SupprimerEntitesEnCollision(&ListeBombes, |
216 | + hitboxbombeL, | ||
217 | + hitboxbombeH, | ||
218 | + &Ljoueur, | ||
219 | + hitboxcanonL, | ||
220 | + hitboxcanonH) == 1) | ||
183 | { | 221 | { |
184 | mort = 1; | 222 | mort = 1; |
185 | majSurface(); | 223 | majSurface(); |
@@ -187,7 +225,12 @@ int main() | @@ -187,7 +225,12 @@ int main() | ||
187 | } | 225 | } |
188 | 226 | ||
189 | //Supression si collision des Enemies et Joueur | 227 | //Supression si collision des Enemies et Joueur |
190 | - if (SupprimerEntitesEnCollision(&ListeEnemies,hitboxenemieL,hitboxenemieH,&Ljoueur,hitboxcanonL,hitboxcanonH) == 1) | 228 | + if (SupprimerEntitesEnCollision(&ListeEnemies, |
229 | + hitboxenemieL, | ||
230 | + hitboxenemieH, | ||
231 | + &Ljoueur, | ||
232 | + hitboxcanonL, | ||
233 | + hitboxcanonH) == 1) | ||
191 | { | 234 | { |
192 | pageGameOver(); | 235 | pageGameOver(); |
193 | majSurface(); | 236 | majSurface(); |