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 | 26 | |
27 | 27 | int canon = 0; |
28 | 28 | int missile = 0; |
29 | -int enemie = 0; | |
29 | +int enemie1_1 = 0; | |
30 | +int enemie1_2 = 0; | |
30 | 31 | int bouillie = 0; |
31 | 32 | int bombe = 0; |
32 | 33 | |
... | ... | @@ -44,15 +45,17 @@ int hitboxbombeH = 0; |
44 | 45 | //Initialisation des variables globales pour le main |
45 | 46 | void initialiser() |
46 | 47 | { |
47 | - canon = chargerLutin ("../../Lutins/invader_canon.bmp", | |
48 | + canon = chargerLutin ("../../Lutins/invader_canon.bmp", | |
48 | 49 | COULEUR_NOIR); |
49 | - missile = chargerLutin ("../../Lutins/invader_missile.bmp", | |
50 | + missile = chargerLutin ("../../Lutins/invader_missile.bmp", | |
50 | 51 | COULEUR_NOIR); |
51 | - enemie = chargerLutin ("../../Lutins/invader_monstre1_1.bmp", | |
52 | + enemie1_1 = chargerLutin ("../../Lutins/invader_monstre2_1.bmp", | |
52 | 53 | COULEUR_NOIR); |
53 | - bouillie = chargerLutin ("../../Lutins/invader_monstre_bouillie.bmp", | |
54 | + enemie1_2 = chargerLutin ("../../Lutins/invader_monstre2_2.bmp", | |
54 | 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 | 59 | COULEUR_NOIR); |
57 | 60 | |
58 | 61 | tailleLutin (canon, |
... | ... | @@ -62,8 +65,8 @@ void initialiser() |
62 | 65 | tailleLutin (missile, |
63 | 66 | &hitboxmissileL, |
64 | 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 | 70 | &hitboxenemieL, |
68 | 71 | &hitboxenemieH); |
69 | 72 | |
... | ... | @@ -133,10 +136,14 @@ char pagedemarrage() |
133 | 136 | majSurface(); |
134 | 137 | attendreEvenement (); |
135 | 138 | |
136 | - lireEvenement (&even,&input,NULL); | |
139 | + lireEvenement (&even, | |
140 | + &input, | |
141 | + NULL); | |
137 | 142 | while (input == '\0') |
138 | 143 | { |
139 | - lireEvenement (&even,&input,NULL); | |
144 | + lireEvenement (&even, | |
145 | + &input, | |
146 | + NULL); | |
140 | 147 | } |
141 | 148 | return input; |
142 | 149 | } |
... | ... | @@ -149,8 +156,12 @@ void pagemort (int nbr_vie) |
149 | 156 | int Hauteur = 0; |
150 | 157 | char mort[] = "Vous etes mort"; |
151 | 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 | 166 | choisirPolice (policeDefaut, TaillePolice1); |
156 | 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 | 20 | #define BombeRandomFixe 50 |
21 | 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 | 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 | 31 | #define Delai0_2s 200 |
27 | 32 | #define Delai0_5s 500 |
28 | 33 | #define Delai2s 2000 |
34 | + | |
35 | +#define VitesseTourdeBoucle 20 | |
36 | + | |
29 | 37 | int main() |
30 | 38 | { |
31 | 39 | creerSurface(TailleX,TailleY,Nom); |
... | ... | @@ -42,7 +50,9 @@ int main() |
42 | 50 | ajout_tete(&Ljoueur,joueur); |
43 | 51 | |
44 | 52 | |
45 | - LigneEnemie(&ListeEnemies,NombreEnemieParLigne,NombreLigneEnemies); | |
53 | + LigneEnemie(&ListeEnemies, | |
54 | + NombreEnemieParLigne, | |
55 | + NombreLigneEnemies); | |
46 | 56 | int SensVague=1; |
47 | 57 | |
48 | 58 | char input = '\0'; |
... | ... | @@ -51,7 +61,8 @@ int main() |
51 | 61 | int CheckAlea = 0; |
52 | 62 | int mort = 0; |
53 | 63 | int nbr_vie = NombreVie; |
54 | - evenement even = 0; | |
64 | + int QuelMonstre = 0; | |
65 | + evenement even = 0; | |
55 | 66 | |
56 | 67 | int coeur = chargerLutin ("../../Lutins/Coeur.bmp", |
57 | 68 | COULEUR_NOIR); |
... | ... | @@ -93,6 +104,7 @@ int main() |
93 | 104 | } |
94 | 105 | //On ajoute de nouveau le joueur précedement supprimé à sa liste |
95 | 106 | ajout_tete(&Ljoueur,joueur); |
107 | + //Desallocation dynamique des listes | |
96 | 108 | DesallouerListe(&ListeTires); |
97 | 109 | DesallouerListe(&ListeBombes); |
98 | 110 | } |
... | ... | @@ -125,10 +137,26 @@ int main() |
125 | 137 | Ljoueur->entite.posy); |
126 | 138 | |
127 | 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 | 161 | //Systeme pour faire drop une bombe dans un temps aléatoire |
134 | 162 | //Mise en place d'un timer |
... | ... | @@ -167,7 +195,7 @@ int main() |
167 | 195 | { |
168 | 196 | DeplacementEnemie(ListeEnemies, |
169 | 197 | &SensVague, |
170 | - 1); | |
198 | + PasEnemie); | |
171 | 199 | TourdeBoucle = 0; |
172 | 200 | } |
173 | 201 | |
... | ... | @@ -176,10 +204,20 @@ int main() |
176 | 204 | DeplacementBombe(&ListeBombes); |
177 | 205 | |
178 | 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 | 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 | 222 | mort = 1; |
185 | 223 | majSurface(); |
... | ... | @@ -187,7 +225,12 @@ int main() |
187 | 225 | } |
188 | 226 | |
189 | 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 | 235 | pageGameOver(); |
193 | 236 | majSurface(); | ... | ... |