Commit 0c17227fc17c9557d48b7dcf71df85c2910a00c0

Authored by Martin CHAUVELIERE
1 parent f8b7fad8

Mise au propre

Showing 72 changed files with 0 additions and 3259 deletions   Show diff stats
Space Invader/Envahisseurs/Graphique/Lutins/Coeur.bmp deleted
No preview for this file type
Space Invader/Envahisseurs/Graphique/Lutins/invader_bombe.bmp deleted
No preview for this file type
Space Invader/Envahisseurs/Graphique/Lutins/invader_bouclier.bmp deleted
No preview for this file type
Space Invader/Envahisseurs/Graphique/Lutins/invader_canon.bmp deleted
No preview for this file type
Space Invader/Envahisseurs/Graphique/Lutins/invader_canon_ferraille.bmp deleted
No preview for this file type
Space Invader/Envahisseurs/Graphique/Lutins/invader_missile.bmp deleted
No preview for this file type
Space Invader/Envahisseurs/Graphique/Lutins/invader_monstre1_1.bmp deleted
No preview for this file type
Space Invader/Envahisseurs/Graphique/Lutins/invader_monstre1_2.bmp deleted
No preview for this file type
Space Invader/Envahisseurs/Graphique/Lutins/invader_monstre2_1.bmp deleted
No preview for this file type
Space Invader/Envahisseurs/Graphique/Lutins/invader_monstre2_2.bmp deleted
No preview for this file type
Space Invader/Envahisseurs/Graphique/Lutins/invader_monstre3_1.bmp deleted
No preview for this file type
Space Invader/Envahisseurs/Graphique/Lutins/invader_monstre3_2.bmp deleted
No preview for this file type
Space Invader/Envahisseurs/Graphique/Lutins/invader_monstre_bouillie.bmp deleted
No preview for this file type
Space Invader/Envahisseurs/Graphique/Lutins/invader_ovni.bmp deleted
No preview for this file type
Space Invader/Envahisseurs/Graphique/Lutins/millepatte_champi.bmp deleted
No preview for this file type
Space Invader/Envahisseurs/Graphique/Lutins/millepatte_corps_bas.bmp deleted
No preview for this file type
Space Invader/Envahisseurs/Graphique/Lutins/millepatte_corps_droite.bmp deleted
No preview for this file type
Space Invader/Envahisseurs/Graphique/Lutins/millepatte_corps_gauche.bmp deleted
No preview for this file type
Space Invader/Envahisseurs/Graphique/Lutins/millepatte_corps_haut.bmp deleted
No preview for this file type
Space Invader/Envahisseurs/Graphique/Lutins/millepatte_tete_bas.bmp deleted
No preview for this file type
Space Invader/Envahisseurs/Graphique/Lutins/millepatte_tete_droite.bmp deleted
No preview for this file type
Space Invader/Envahisseurs/Graphique/Lutins/millepatte_tete_gauche.bmp deleted
No preview for this file type
Space Invader/Envahisseurs/Graphique/Lutins/millepatte_tete_haut.bmp deleted
No preview for this file type
Space Invader/Envahisseurs/Graphique/src/Graphique/Makefile deleted
@@ -1,29 +0,0 @@ @@ -1,29 +0,0 @@
1 -#  
2 -# Makefile pour la bibliotheque graphique  
3 -#  
4 -  
5 -SOURCES = $(wildcard *.c)  
6 -OBJETS = $(SOURCES:.c=.o)  
7 -CIBLE = libgraph.a  
8 -  
9 -#  
10 -# Nom de la cible principale  
11 -#  
12 -  
13 -all: $(CIBLE)  
14 -  
15 -#  
16 -# Cible de nettoyage  
17 -#  
18 -  
19 -clean:  
20 - rm -f core *.o $(CIBLE)  
21 -  
22 -#  
23 -# Dependances pour la bibliotheque  
24 -#  
25 -  
26 -$(CIBLE): $(OBJETS)  
27 - $(AR) rs $@ $?  
28 -  
29 -$(CIBLE:.a=).o: $(CIBLE:.a=).c $(CIBLE:.a=).h  
Space Invader/Envahisseurs/Graphique/src/Graphique/libgraph.c deleted
@@ -1,239 +0,0 @@ @@ -1,239 +0,0 @@
1 -/**** Bibliotheque graphique ****/  
2 -  
3 -/** Fichiers d'inclusion **/  
4 -  
5 -#include <SDL/SDL.h>  
6 -#include <SDL/SDL_ttf.h>  
7 -#include "libgraph.h"  
8 -  
9 -/** Types **/  
10 -  
11 -typedef struct  
12 -{  
13 - int r, v, b;  
14 -} couleur;  
15 -  
16 -/** Constantes **/  
17 -  
18 -#define BITS_PAR_PIXEL 32  
19 -#define TAILLE_POLICE 20  
20 -  
21 -static const couleur couleurs[] = { { 255, 255, 255 }, { 0, 0, 0 }, { 255, 0, 0 },  
22 - { 0, 255, 0 }, { 0, 0, 255 }, { 255, 105, 180 },  
23 - { 150, 150, 150 }, { -1, -1, -1 } };  
24 -  
25 -static const char policeDefaut[]="/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf";  
26 -  
27 -/** Variables globales **/  
28 -  
29 -static SDL_Surface *surface;  
30 -TTF_Font* police;  
31 -  
32 -/** Fonctions **/  
33 -  
34 -void choisirPolice(const char *chemin, int taille){  
35 - police=TTF_OpenFont(chemin, taille);  
36 -}  
37 -  
38 -void initialiserTexte() {  
39 - TTF_Init();  
40 - choisirPolice(policeDefaut, TAILLE_POLICE);  
41 -}  
42 -  
43 -/* Initialisation de la surface dessinable */  
44 -unsigned char creerSurface (int largeur, int hauteur, char *titre)  
45 -{  
46 - SDL_Init (SDL_INIT_VIDEO);  
47 - SDL_WM_SetCaption (titre, titre);  
48 - surface = SDL_SetVideoMode (largeur, hauteur, BITS_PAR_PIXEL, SDL_DOUBLEBUF);  
49 - initialiserTexte();  
50 -  
51 - return (surface != NULL && police != NULL);  
52 -}  
53 -  
54 -/* Fermeture de la surface dessinable */  
55 -  
56 -void fermerSurface (void)  
57 -{  
58 - if (surface != NULL) SDL_FreeSurface (surface);  
59 - if (police != NULL) TTF_CloseFont(police);  
60 - TTF_Quit();  
61 - SDL_Quit ();  
62 -}  
63 -  
64 -/* Creation d'une couleur */  
65 -  
66 -static int creerCouleur (int ncouleur)  
67 -{  
68 - couleur c = couleurs[ncouleur];  
69 - return SDL_MapRGB (surface->format, c.r, c.v, c.b);  
70 -}  
71 -  
72 -/* Dessin d'un rectangle plein */  
73 -  
74 -void rectanglePlein (int x, int y, int l, int h, int c)  
75 -{  
76 - SDL_Rect rectangle = { x, y, l, h };  
77 - SDL_FillRect (surface, &rectangle, creerCouleur (c));  
78 - // SDL_Flip(surface);  
79 -}  
80 -  
81 -/* Manipulation de lutins */  
82 -  
83 -static SDL_Surface *lutins[MAX_LUTINS];  
84 -static int lutins_nb = 0;  
85 -  
86 -int lutinTexte(char* texte, int couleurTexte) {  
87 - couleur c=couleurs[couleurTexte];  
88 - SDL_Color couleur={c.r, c.v, c.b};  
89 - SDL_Surface* lutin=TTF_RenderText_Solid(police, texte, couleur);  
90 - if (lutin != NULL)  
91 - {  
92 - lutins[lutins_nb++] = lutin;  
93 - return lutins_nb - 1;  
94 - }  
95 - return -1;  
96 -}  
97 -  
98 -static void configurerLutin (SDL_Surface *lutin, int ncouleur)  
99 -{  
100 - couleur c = couleurs[ncouleur];  
101 - int fond = SDL_MapRGB (lutin->format, c.r, c.v, c.b);  
102 - SDL_SetColorKey (lutin, SDL_SRCCOLORKEY | SDL_RLEACCEL, fond);  
103 -}  
104 -  
105 -int chargerLutin (char *fichier, int couleur)  
106 -{  
107 - if (lutins_nb >= MAX_LUTINS) return -2;  
108 - SDL_Surface *lutin = SDL_LoadBMP (fichier);  
109 - if (lutin != NULL)  
110 - {  
111 - lutins[lutins_nb++] = lutin;  
112 - if (couleur >= 0) configurerLutin (lutin, couleur);  
113 - return lutins_nb - 1;  
114 - }  
115 - return -1;  
116 -}  
117 -  
118 -void afficherLutin (int lutin, int x, int y)  
119 -{  
120 - SDL_Rect position;  
121 - position.x = x;  
122 - position.y = y;  
123 - SDL_BlitSurface (lutins[lutin], NULL, surface, &position);  
124 -}  
125 -  
126 -int creerLutin (int x, int y, int largeur, int hauteur, int couleur)  
127 -{  
128 - if (lutins_nb >= MAX_LUTINS) return -2;  
129 - int rmask, gmask, bmask, amask;  
130 -#if SDL_BYTEORDER == SDL_BIG_ENDIAN  
131 - rmask = 0xff000000;  
132 - gmask = 0x00ff0000;  
133 - bmask = 0x0000ff00;  
134 - amask = 0x000000ff;  
135 -#else  
136 - rmask = 0x000000ff;  
137 - gmask = 0x0000ff00;  
138 - bmask = 0x00ff0000;  
139 - amask = 0xff000000;  
140 -#endif  
141 - if (couleur < 0) amask = 0x00000000;  
142 - SDL_Surface *lutin =  
143 - SDL_CreateRGBSurface (0, largeur, hauteur, BITS_PAR_PIXEL, rmask, gmask, bmask, amask);  
144 - SDL_Rect fenetre;  
145 - fenetre.x = x;  
146 - fenetre.y = y;  
147 - fenetre.h = hauteur;  
148 - fenetre.w = largeur;  
149 - SDL_BlitSurface (surface, &fenetre, lutin, NULL);  
150 - lutins[lutins_nb++] = lutin;  
151 - if (couleur >= 0) configurerLutin (lutin, couleur);  
152 - return lutins_nb - 1;  
153 -}  
154 -  
155 -void tailleLutin (int lutin, int *largeur, int *hauteur)  
156 -{  
157 - *largeur = lutins[lutin]->w;  
158 - *hauteur = lutins[lutin]->h;  
159 -}  
160 -  
161 -int sauverLutin (int lutin, char *nom) { return SDL_SaveBMP (lutins[lutin], nom); }  
162 -  
163 -/* Manipulation de copie de surface en BMP */  
164 -  
165 -int sauverSurface (char *fichier) { return SDL_SaveBMP (surface, fichier); }  
166 -  
167 -unsigned char chargerSurface (char *fichier)  
168 -{  
169 - SDL_Surface *image = SDL_LoadBMP (fichier);  
170 - if (image != NULL)  
171 - {  
172 - SDL_BlitSurface (image, NULL, surface, NULL);  
173 - SDL_Flip (surface);  
174 - }  
175 - return (image != NULL);  
176 -}  
177 -  
178 -void majSurface (void) { SDL_Flip (surface); }  
179 -  
180 -/* Trouver la couleur d'un pixel */  
181 -  
182 -int couleurPixel (int x, int y)  
183 -{  
184 - int bpp = surface->format->BytesPerPixel;  
185 - Uint32 *p = (Uint32 *)(surface->pixels + y * surface->pitch + x * bpp);  
186 - Uint8 r, v, b;  
187 - SDL_GetRGB (*p, surface->format, &r, &v, &b);  
188 - int i = 0;  
189 - while (1)  
190 - {  
191 - if (couleurs[i].r < 0) break;  
192 - if (r == couleurs[i].r && v == couleurs[i].v && b == couleurs[i].b) break;  
193 - i++;  
194 - }  
195 - if (couleurs[i].r < 0)  
196 - return -1;  
197 - else  
198 - return i;  
199 -}  
200 -  
201 -/* Fonction de traitement des événements */  
202 -  
203 -void lireEvenement (evenement *evt, char *touche, void **detail)  
204 -{  
205 - static SDL_keysym _detail;  
206 - SDL_Event event;  
207 - while (SDL_PollEvent (&event))  
208 - {  
209 - if (event.type == SDL_QUIT) *evt = quitter;  
210 - if (event.type == SDL_KEYDOWN || event.type == SDL_KEYUP)  
211 - {  
212 - *evt = (event.type == SDL_KEYDOWN) ? toucheBas : toucheHaut;  
213 - char *nom = SDL_GetKeyName (event.key.keysym.sym);  
214 - if (strlen (nom) == 1 && nom[0] >= 32 && nom[0] < 128)  
215 - *touche = nom[0];  
216 - else  
217 - *touche = 0;  
218 - if (detail != NULL)  
219 - {  
220 - _detail = event.key.keysym;  
221 - *detail = &_detail;  
222 - }  
223 - break;  
224 - }  
225 - }  
226 -}  
227 -  
228 -void attendreEvenement (void)  
229 -{  
230 - SDL_Event event;  
231 - while (SDL_WaitEvent (&event)) switch (event.type)  
232 - {  
233 - case SDL_QUIT:  
234 - exit (0);  
235 - case SDL_KEYDOWN:  
236 - case SDL_MOUSEBUTTONDOWN:  
237 - return;  
238 - }  
239 -}  
Space Invader/Envahisseurs/Graphique/src/Graphique/libgraph.h deleted
@@ -1,156 +0,0 @@ @@ -1,156 +0,0 @@
1 -/**** Bibliotheque graphique (definitions) ****/  
2 -  
3 -/** Constantes **/  
4 -  
5 -#define COULEUR_BLANC 0  
6 -#define COULEUR_NOIR 1  
7 -#define COULEUR_ROUGE 2  
8 -#define COULEUR_VERT 3  
9 -#define COULEUR_BLEU 4  
10 -#define COULEUR_ROSE 5  
11 -#define COULEUR_GRIS 6  
12 -  
13 -#define MAX_LUTINS 16  
14 -  
15 -typedef enum {toucheBas, toucheHaut, quitter} evenement;  
16 -  
17 -/** Prototypes **/  
18 -  
19 -/**  
20 - * @brief cree une fenetre 2D  
21 - *  
22 - * @param largeur en pixels de la fenetre  
23 - * @param hauteur en pixels de la fenetre  
24 - * @param titre de la fenetre (chaine de caractere)  
25 - */  
26 -unsigned char creerSurface (int largeur, int hauteur, char *titre);  
27 -  
28 -/**  
29 - * @brief permet de charger un fichier image au format bmp (bitmap)  
30 - *  
31 - * @param fichier nom du fichier  
32 - */  
33 -unsigned char chargerSurface (char *fichier);  
34 -  
35 -  
36 -/**  
37 - * @brief permet de sauvegarder une surface en image (format bmp)  
38 - *  
39 - * @param fichier nom du fichier  
40 - * @return 0 si OK, valeur negative sinon  
41 - */  
42 -int sauverSurface (char *fichier);  
43 -  
44 -/**  
45 - * @brief met a jour la surface d'affichage  
46 - */  
47 -void majSurface (void);  
48 -  
49 -  
50 -/**  
51 - * @brief libere la surface d'affichage  
52 - * a faire lors de la fermeture  
53 - * du programme  
54 - */  
55 -void fermerSurface (void);  
56 -  
57 -/**  
58 - * @brief choisit la police de caractères à utiliser pour afficher du texte  
59 - * @param chemin nom du fichier de police (format .ttf, voir /usr/share/fonts/truetype)  
60 - * @param taille taille de la police  
61 - */  
62 -void choisirPolice(const char *chemin, int taille);  
63 -  
64 -/**  
65 - * @brief dessine un rectange de taille (l,h) aux coordonnêes  
66 - * (x,y) et de couleur c  
67 - *  
68 - * @param x 0 <= x <= l_surface  
69 - * @param y 0 <= y <= h_surface  
70 - * @param l largeur en pixels  
71 - * @param h longueur en pixels  
72 - * @param c indice de couleur voir variable couleurs dans le fichier .c  
73 - */  
74 -void rectanglePlein (int x, int y, int l, int h, int c);  
75 -  
76 -  
77 -/**  
78 - * @brief permet de determiner l'indice du tableau de couleur du  
79 - * pixel aux coordonnees (x,y)  
80 - *  
81 - * @param x 0 <= x <= l_surface  
82 - * @param y 0 <= y <= h_surface  
83 - * @return indice de couleur voire variable couleurs dans le fichier .c  
84 - */  
85 -int couleurPixel (int x, int y);  
86 -  
87 -/**  
88 - * @brief crée un lutin à partir d'un texte  
89 - *  
90 - * @param texte le texte  
91 - * @param couleur indice de couleur du texte  
92 - * @return numero de lutin dans le tableau dynamique de lutin (< MAX_LUTINS)  
93 - */  
94 -int lutinTexte(char *texte, int couleur);  
95 -  
96 -/**  
97 - * @brief charge un lutin à partir du fichier  
98 - *  
99 - * @param fichier image bitmap du lutin à charger  
100 - * @param couleur indice de couleurs à charger  
101 - * @return numero de lutin dans le tableau dynamique de lutin (< MAX_LUTINS)  
102 - */  
103 -int chargerLutin (char *fichier, int couleur);  
104 -  
105 -/**  
106 - * @brief afficher un lutin aux coordonnées (x,y)  
107 - *  
108 - * @param lutin numero du lutin à afficher (< MAX_LUTINS)  
109 - * @param x abscisse de départ  
110 - * @param y ordonnée de départ  
111 - */  
112 -void afficherLutin (int lutin, int x, int y);  
113 -  
114 -/**  
115 - * @brief creer un lutin de taille (l,h) aux coordonnées (x,y)  
116 - *  
117 - * @param x abscisse de départ  
118 - * @param y ordonnée de départ  
119 - * @param largeur largeur du lutin  
120 - * @param hauteur hauteur du lutin  
121 - * @param couleur indice de couleur à partir du tableau _couleurs_  
122 - * @return indice du lutin dans le tableau global (< MAX_LUTINS)  
123 - */  
124 -int creerLutin (int x, int y, int largeur, int hauteur, int couleur);  
125 -  
126 -/**  
127 - * @brief sauvegarde un lutin dans un fichier  
128 - *  
129 - * @param lutin numero de lutin à sauvegarder (< MAX_LUTINS)  
130 - * @param nom fichier pour la sauvegarde  
131 - * @return 0 si OK valeur négative sinon  
132 - */  
133 -int sauverLutin (int lutin, char *nom);  
134 -  
135 -/**  
136 - * @brief calcule la taille (largeur,hauteur) d'un lutin  
137 - *  
138 - * @param lutin index du lutin (< MAX_LUTINS)  
139 - * @param largeur pointeur sur la largeur  
140 - * @param hauteur pointeur sur la hauteur  
141 - */  
142 -void tailleLutin (int lutin, int *largeur, int *hauteur);  
143 -  
144 -/**  
145 - * @brief lire une touche au clavier  
146 - *  
147 - * @param evt pointeur sur evenement  
148 - * @param touche pointeur sur la touche pressée  
149 - * @param detail NULL ou keysim  
150 - */  
151 -void lireEvenement (evenement *evt, char *touche, void **detail);  
152 -  
153 -/**  
154 - * @brief attente d'un evenement bouton, souris, fin de programme  
155 - */  
156 -void attendreEvenement (void);  
Space Invader/Envahisseurs/Graphique/src/Interactif/Interactif.c deleted
@@ -1,359 +0,0 @@ @@ -1,359 +0,0 @@
1 -#include <stdlib.h>  
2 -#include <string.h>  
3 -  
4 -#include "../Graphique/libgraph.h"  
5 -#include "../ListeC/Liste.h"  
6 -#include "Interactif.h"  
7 -#include "../Main/init.h"  
8 -  
9 -#define TailleX 500  
10 -#define TailleY 500  
11 -#define Sol 475  
12 -#define ErreurHitbox 2  
13 -#define TailleX9_10 (9 * TailleX / 10)  
14 -#define TailleX1_10 (TailleX / 10)  
15 -  
16 -#define ValeurDeplacementTire 5  
17 -#define ValeurDeplacementJoueur 3  
18 -#define ValeurDeplacementBombe 2  
19 -  
20 -  
21 -  
22 -int CheckCollisionEntiteEntite (struct entite entite1,  
23 - int L1,  
24 - int H1,  
25 - struct entite entite2,  
26 - int L2,  
27 - int H2)  
28 -{  
29 - //CheckX  
30 - int gauche1 = entite1.posx - L1/2 + ErreurHitbox;  
31 - int droite1 = entite1.posx + L1/2 - ErreurHitbox;  
32 - int gauche2 = entite2.posx - L2/2 + ErreurHitbox;  
33 - int droite2 = entite2.posx + L2/2 - ErreurHitbox;  
34 - //Tout les cas possibles de collision  
35 - int CheckX = (gauche1 >= gauche2 && gauche1 <= droite2) ||  
36 - (droite1 >= gauche2 && droite1 <= droite2) ||  
37 - (gauche1 >= gauche2 && droite1 <= droite2) ||  
38 - (gauche2 >= gauche1 && droite2 <= droite1);  
39 -  
40 - //CheckY  
41 - int haut1 = entite1.posy - H1/2 + ErreurHitbox;  
42 - int bas1 = entite1.posy + H1/2 - ErreurHitbox;  
43 - int haut2 = entite2.posy - H2/2 + ErreurHitbox;  
44 - int bas2 = entite2.posy + H2/2 - ErreurHitbox;  
45 - int CheckY = (haut1 <= bas2 && haut1 >= haut2) ||  
46 - (bas1 <= bas2 && bas1 >= haut2) ||  
47 - (haut1 <= haut2 && bas1 >= bas2) ||  
48 - (haut2 <= haut1 && bas2 >= bas1);  
49 -  
50 -  
51 - return CheckX && CheckY;  
52 -}  
53 -  
54 -//La fonction renvoie l'entite de la Liste1 si il y a collision  
55 -struct entite* CheckCollisionListeEntite (struct liste_entite* Liste1,  
56 - int L1,  
57 - int H1,  
58 - struct entite entite2,  
59 - int L2,  
60 - int H2)  
61 -{  
62 -  
63 - struct liste_entite *pListe1 = Liste1;  
64 - while (pListe1 != NULL)  
65 - {  
66 -  
67 - if(CheckCollisionEntiteEntite (pListe1->entite,  
68 - L1,  
69 - H1,  
70 - entite2,  
71 - L2,  
72 - H2) == 1)  
73 - {  
74 - return &pListe1->entite;  
75 - }  
76 -  
77 - pListe1 = pListe1->suivant;  
78 - }  
79 - return NULL;  
80 -}  
81 -  
82 -  
83 -  
84 -//La fonction renvoie une liste d'entite avec les deux entites à supprimer si il y a collision  
85 -struct liste_entite* CheckCollisionListeListe (struct liste_entite* Liste1,  
86 - int L1,  
87 - int H1,  
88 - struct liste_entite* Liste2,  
89 - int L2,  
90 - int H2)  
91 -{  
92 -  
93 - struct liste_entite *pListe2 = Liste2;  
94 - while (pListe2 != NULL)  
95 - {  
96 -  
97 - struct entite* collision = CheckCollisionListeEntite (Liste1,  
98 - L1,  
99 - H1,  
100 - pListe2->entite,  
101 - L2,  
102 - H2);  
103 - if (collision == NULL)  
104 - {  
105 - pListe2 = pListe2->suivant;  
106 - }  
107 -  
108 - else  
109 - {  
110 - // Création des structures pour les deux entités  
111 - struct liste_entite* Entite1 = malloc(sizeof(struct liste_entite));  
112 - struct liste_entite* Entite2 = malloc(sizeof(struct liste_entite));  
113 -  
114 - // Remplissage des structure avec les entités correspondantes  
115 - Entite1->entite = *collision;  
116 - Entite2->entite = pListe2->entite;  
117 -  
118 - // Relier les structures entre elles  
119 - Entite1->suivant = Entite2;  
120 - Entite2->suivant = NULL;  
121 -  
122 - return Entite1;  
123 - }  
124 - }  
125 -  
126 - return NULL;  
127 -}  
128 -  
129 -//Tire un missile, il ne peux y en avoir que un à la fois  
130 -void Tirer (struct entite joueur,  
131 - struct liste_entite** pl)  
132 -{  
133 - if (*pl == NULL)  
134 - {  
135 - ajout_tete(pl,  
136 - creer_entite(joueur.posx,  
137 - joueur.posy,  
138 - -1));  
139 - }  
140 -}  
141 -  
142 -  
143 -void DeplacementTire(struct liste_entite** Liste)  
144 -{  
145 - struct entite* Entite = &(*Liste)->entite;  
146 - if (Entite != NULL)  
147 - {  
148 -  
149 - if (Entite->posy <= 0)  
150 - {  
151 - afficherLutin(bouillie,  
152 - Entite->posx - hitboxbouillieL/2 + ErreurHitbox,  
153 - Entite->posy);  
154 - SupprimerEntite(Liste, Entite);  
155 - }  
156 -  
157 - else  
158 - {  
159 - Entite->posy -= ValeurDeplacementTire;  
160 - //Je divise ErreurHitbox par 2 car l'erreur du missile est plus petite que pour les autres images  
161 - afficherLutin(missile,  
162 - Entite->posx - hitboxmissileL/2 + ErreurHitbox/2,  
163 - Entite->posy - hitboxmissileH/2 + ErreurHitbox/2);  
164 - }  
165 - }  
166 -}  
167 -  
168 -  
169 -//La fonction fait une action soit au joueur soit aux tires selon la touche préssée  
170 -void action(struct entite* joueur,  
171 - char c,  
172 - struct liste_entite** tires)  
173 -{  
174 - switch (c)  
175 - {  
176 - case 'd':  
177 - if (joueur->posx <= TailleX9_10)  
178 - {  
179 - joueur->posx += ValeurDeplacementJoueur;  
180 - }  
181 - break;  
182 - case 'q':  
183 - if (joueur->posx >= TailleX1_10)  
184 - {  
185 - joueur->posx -= ValeurDeplacementJoueur;  
186 - }  
187 - break;  
188 - case 't':  
189 - Tirer(*joueur,  
190 - tires);  
191 - break;  
192 - default:  
193 - break;  
194 - }  
195 -}  
196 -  
197 -//La fonction crée une liste de tout les enemies pouvant drop des bombes  
198 -//Ceux les plus bas de leur colonne  
199 -//Puis ajoute à la liste bombe, une bombe provenant d'un des enemies pouvant drop des bombes  
200 -//Le choix de quel enemie drop la bombe est aléatoire  
201 -void MakeBombeDrop (struct liste_entite* enemies,  
202 - struct liste_entite** bombes)  
203 -{  
204 -  
205 - struct liste_entite* pListe = enemies;  
206 - struct liste_entite* Dropable = NULL;  
207 - int taille = 0;  
208 -  
209 - while (pListe != NULL)  
210 - {  
211 -  
212 - if (pListe->entite.dropbombe == 1)  
213 - {  
214 - ajout_tete(&Dropable,pListe->entite);  
215 - taille += 1;  
216 - }  
217 -  
218 - pListe = pListe->suivant;  
219 - }  
220 -  
221 - if(Dropable == NULL)  
222 - {  
223 - return;  
224 - }  
225 - //On choisit une valeur aléatoire qui représente l'enemie qui va drop la bombe  
226 - //Il ya un warning comme quoi rand() à une limite  
227 - //Mais on ne la dépassera jamais, taille ne pourra  
228 - //jamais excédé une vingtaine d'enemies par ligne  
229 - int randomIndex = rand() % taille-1;  
230 - struct liste_entite* pDropable = Dropable;  
231 -  
232 - for (int i = 0; i <= randomIndex; i++)  
233 - {  
234 - pDropable = pDropable->suivant;  
235 - }  
236 -  
237 - ajout_tete(bombes,  
238 - creer_entite(pDropable->entite.posx,  
239 - pDropable->entite.posy,  
240 - -1));  
241 -}  
242 -  
243 -  
244 -void DeplacementBombe(struct liste_entite** Liste)  
245 -{  
246 - struct liste_entite* pListe = *Liste;  
247 -  
248 - while (pListe != NULL)  
249 - {  
250 -  
251 - if (pListe->entite.posy + hitboxbombeH/2 - ErreurHitbox >= Sol)  
252 - {  
253 - struct entite* a_supprimer = &pListe->entite;  
254 -  
255 - pListe = pListe->suivant;  
256 - SupprimerEntite(Liste,a_supprimer);  
257 - }  
258 -  
259 - else  
260 - {  
261 - pListe->entite.posy += ValeurDeplacementBombe;  
262 - afficherLutin(bombe,  
263 - pListe->entite.posx - hitboxbombeL/2 + ErreurHitbox,  
264 - pListe->entite.posy - hitboxbombeH/2 + ErreurHitbox);  
265 - pListe = pListe->suivant;  
266 - }  
267 - }  
268 -}  
269 -  
270 -//Si un enemie est éliminé et qu'il etait le plus bas de sa colonne (il pouvait drop des bombes)  
271 -//Alors si il y en a un l'enemie au dessus de lui (de la meme colonne) peut drop des bombes  
272 -void NouveauDroppeurBombe (struct liste_entite** liste,  
273 - struct entite* entite)  
274 -{  
275 -  
276 - int posx = entite->posx;  
277 - int posy = entite->posy;  
278 - struct liste_entite* pListe = *liste;  
279 - struct entite* entite_basse = NULL;  
280 -  
281 - // On parcourt la liste et on cherche l'entité la plus basse ayant la même position x  
282 - while (pListe != NULL)  
283 - {  
284 -  
285 - if (pListe->entite.posy != posy)  
286 - {  
287 -  
288 - if (pListe->entite.posx == posx &&  
289 - entite_basse == NULL)  
290 - {  
291 - entite_basse = &pListe->entite;  
292 - }  
293 -  
294 - else if (pListe->entite.posx == posx &&  
295 - pListe->entite.posy > entite_basse->posy)  
296 - {  
297 - entite_basse = &pListe->entite;  
298 - }  
299 - }  
300 -  
301 - pListe = pListe->suivant;  
302 - }  
303 -  
304 - // Si aucune entité n'est située plus bas que l'entité en question, on ne peut pas dropper la bombe  
305 - if (entite_basse == NULL)  
306 - {  
307 - return;  
308 - }  
309 -  
310 - entite_basse->dropbombe = 1;  
311 -}  
312 -  
313 -  
314 -  
315 -//Fonction principale qui supprime les entités rentrées en collision de leur liste  
316 -int SupprimerEntitesEnCollision (struct liste_entite** Liste1,  
317 - int L1,  
318 - int H1,  
319 - struct liste_entite** Liste2,  
320 - int L2,  
321 - int H2)  
322 -{  
323 -  
324 - struct liste_entite* collision = CheckCollisionListeListe(*Liste1,  
325 - L1,  
326 - H1,  
327 - *Liste2,  
328 - L2,  
329 - H2);  
330 - if (collision != NULL)  
331 - {  
332 - // Récupération des entités impliquées  
333 - struct entite* Entite1 = &collision->entite;  
334 - struct entite* Entite2 = &collision->suivant->entite;  
335 -  
336 - if (Entite1->dropbombe == 1)  
337 - {  
338 - NouveauDroppeurBombe(Liste1,Entite1);  
339 - }  
340 -  
341 - if (Entite2->dropbombe == 1)  
342 - {  
343 - NouveauDroppeurBombe(Liste2,Entite2);  
344 - }  
345 -  
346 - // Suppression de l'entité 1 de la liste 1  
347 - SupprimerEntite(Liste1, Entite1);  
348 - // Suppression de l'entité 2 de la liste 2  
349 - SupprimerEntite(Liste2, Entite2);  
350 -  
351 - afficherLutin(bouillie,  
352 - Entite2->posx - hitboxbouillieL/2 + ErreurHitbox,  
353 - Entite2->posy - hitboxbouillieH/2 + ErreurHitbox);  
354 - return 1;  
355 - }  
356 - return 0;  
357 -}  
358 -  
359 -  
Space Invader/Envahisseurs/Graphique/src/Interactif/Interactif.h deleted
@@ -1,44 +0,0 @@ @@ -1,44 +0,0 @@
1 -int CheckCollisionEntiteEntite (struct entite entite1,  
2 - int L1,  
3 - int H1,  
4 - struct entite entite2,  
5 - int L2,  
6 - int H2);  
7 -  
8 -struct entite* CheckCollisionListeEntite (struct liste_entite* Liste1,  
9 - int L1,  
10 - int H1,  
11 - struct entite entite2,  
12 - int L2,  
13 - int H2);  
14 -  
15 -struct liste_entite* CheckCollisionListeListe (struct liste_entite* Liste1,  
16 - int L1,  
17 - int H1,  
18 - struct liste_entite* Liste2,  
19 - int L2,  
20 - int H2);  
21 -  
22 -void Tirer (struct entite joueur,  
23 - struct liste_entite** pl);  
24 -  
25 -void DeplacementTire(struct liste_entite** Liste);  
26 -  
27 -void action(struct entite* joueur,  
28 - char c,  
29 - struct liste_entite** tires);  
30 -  
31 -void MakeBombeDrop (struct liste_entite* enemies,  
32 - struct liste_entite** bombes);  
33 -  
34 -void DeplacementBombe(struct liste_entite** Liste) ;  
35 -  
36 -void NouveauDroppeurBombe (struct liste_entite** liste,  
37 - struct entite* entite);  
38 -  
39 -int SupprimerEntitesEnCollision (struct liste_entite** Liste1,  
40 - int L1,  
41 - int H1,  
42 - struct liste_entite** Liste2,  
43 - int L2,  
44 - int H2);  
Space Invader/Envahisseurs/Graphique/src/ListeC/Liste.c deleted
@@ -1,78 +0,0 @@ @@ -1,78 +0,0 @@
1 -#include <stdio.h>  
2 -#include <stdlib.h>  
3 -#include <string.h>  
4 -  
5 -#include "Liste.h"  
6 -  
7 -//Crée une entité  
8 -struct entite creer_entite (int x,  
9 - int y,  
10 - int bombe)  
11 -{  
12 - struct entite e;  
13 -  
14 - e.posx = x;  
15 - e.posy = y;  
16 - e.dropbombe = bombe;  
17 -  
18 - return e;  
19 -}  
20 -  
21 -  
22 -//Ajout en tete une entité dans une liste  
23 -void ajout_tete (struct liste_entite** Liste,  
24 - struct entite x )  
25 -{  
26 - struct liste_entite *Listetmp=NULL;  
27 -  
28 - Listetmp = malloc(sizeof(struct liste_entite));  
29 - Listetmp->entite = x;  
30 - Listetmp->suivant = *Liste;  
31 -  
32 - *Liste = Listetmp;  
33 -}  
34 -  
35 -  
36 -//Supprime une entite d'une liste  
37 -void SupprimerEntite (struct liste_entite** Liste,  
38 - struct entite* entite)  
39 -{  
40 - struct liste_entite* courant = *Liste;  
41 - struct liste_entite* precedent = NULL;  
42 -  
43 - while (courant != NULL)  
44 - {  
45 -  
46 - if (memcmp (&courant->entite,  
47 - entite,  
48 - sizeof(struct entite)) == 0)  
49 - {  
50 -  
51 - if (precedent == NULL)  
52 - {  
53 - *Liste = courant->suivant;  
54 - }  
55 -  
56 - else  
57 - {  
58 - precedent->suivant = courant->suivant;  
59 - }  
60 -  
61 - free(courant);  
62 - break;  
63 - }  
64 -  
65 - precedent = courant;  
66 - courant = courant->suivant;  
67 - }  
68 -}  
69 -  
70 -  
71 -//Desallouer une liste entiere  
72 -void DesallouerListe (struct liste_entite** Liste)  
73 -{  
74 - while(*Liste != NULL)  
75 - {  
76 - SupprimerEntite(Liste,&((*Liste)->entite));  
77 - }  
78 -}  
Space Invader/Envahisseurs/Graphique/src/ListeC/Liste.h deleted
@@ -1,29 +0,0 @@ @@ -1,29 +0,0 @@
1 -//dropbombe concerne les entités enemies  
2 -//1 les enemies peuvent drop des bombes, 0 ils ne peuvent pas  
3 -//Les entites non concernées vallent ont un dropbombe = -1  
4 -struct entite  
5 -{  
6 - int posx;  
7 - int posy;  
8 - int dropbombe;  
9 -};  
10 -  
11 -  
12 -struct liste_entite  
13 -{  
14 - struct entite entite;  
15 - struct liste_entite *suivant;  
16 -};  
17 -  
18 -  
19 -struct entite creer_entite (int x,  
20 - int y,  
21 - int bombe);  
22 -  
23 -void ajout_tete (struct liste_entite** Liste,  
24 - struct entite x );  
25 -  
26 -void SupprimerEntite (struct liste_entite** Liste,  
27 - struct entite* entite);  
28 -  
29 -void DesallouerListe (struct liste_entite** Liste);  
Space Invader/Envahisseurs/Graphique/src/Main/Makefile deleted
@@ -1,34 +0,0 @@ @@ -1,34 +0,0 @@
1 -CC=clang  
2 -TARGET=exec  
3 -CFLAGS=-g -W -Wall -Wextra  
4 -LDFLAGS=-I Graphique -l graph -L ../Graphique -l SDL -l SDL_ttf  
5 -  
6 -default: $(TARGET)  
7 -  
8 -Liste.o : ../ListeC/Liste.c ../ListeC/Liste.h  
9 - clang $(CFLAGS) -c ../ListeC/Liste.c  
10 -  
11 -Monstre.o : ../Monstre/Monstre.c ../Monstre/Monstre.h ../ListeC/Liste.h  
12 - clang $(CFLAGS) -c ../Monstre/Monstre.c  
13 -  
14 -Interactif.o : ../Interactif/Interactif.c ../Interactif/Interactif.h ../ListeC/Liste.h  
15 - clang $(CFLAGS) -c ../Interactif/Interactif.c  
16 -  
17 -init.o : init.c init.h ../ListeC/Liste.h  
18 - clang $(CFLAGS) -c init.c  
19 -  
20 -main.o : main.c ../ListeC/Liste.h  
21 - clang $(CFLAGS) -c main.c  
22 -  
23 -  
24 -$(TARGET): Liste.o main.o Monstre.o Interactif.o init.o  
25 - clang main.o Liste.o Monstre.o Interactif.o init.o -o $(TARGET) $(LDFLAGS)  
26 -  
27 -.PHONY: clean  
28 -clean:  
29 - rm -f *.o  
30 - rm -f $(TARGET)  
31 -  
32 -tidy : main.c ../ListeC/Liste.c ../Monstre/Monstre.c ../Interactif/Interactif.c init.c  
33 - $(CC)-tidy main.c ../ListeC/Liste.c ../Monstre/Monstre.c ../Interactif/Interactif.c init.c --checks="readability-*" -header-filter=.*  
34 -  
Space Invader/Envahisseurs/Graphique/src/Main/init.c deleted
@@ -1,243 +0,0 @@ @@ -1,243 +0,0 @@
1 -#include <stdio.h>  
2 -#include "../Graphique/libgraph.h"  
3 -#include "../ListeC/Liste.h"  
4 -#include "../Interactif/Interactif.h"  
5 -#include "init.h"  
6 -  
7 -#define TailleX 500  
8 -#define TailleY 500  
9 -#define Sol 475  
10 -#define ErreurHitbox 2  
11 -#define PositionX_1 (TailleX / 2)  
12 -#define PositionY_1 (TailleY / 2)  
13 -#define PositionY_2 (TailleY / 4)  
14 -  
15 -#define JoueurX (TailleX / 2)  
16 -#define JoueurY (9 * TailleY / 10)  
17 -  
18 -#define Nom "Space Invaders"  
19 -#define TaillePolice1 (TailleX / 10)  
20 -#define TaillePolice2 (TailleX / 20)  
21 -#define TailleChaineMax 30  
22 -  
23 -//Ces variables sont globales car utilisées dans plusieurs .c  
24 -//Toutes les hitbox sont initialisées 1 fois puis sont des constantes  
25 -struct entite joueur;  
26 -  
27 -int canon = 0;  
28 -int missile = 0;  
29 -int enemie1_1 = 0;  
30 -int enemie1_2 = 0;  
31 -int bouillie = 0;  
32 -int bombe = 0;  
33 -  
34 -int hitboxcanonL = 0;  
35 -int hitboxcanonH = 0;  
36 -int hitboxmissileL = 0;  
37 -int hitboxmissileH = 0;  
38 -int hitboxenemieL = 0;  
39 -int hitboxenemieH = 0;  
40 -int hitboxbouillieL = 0;  
41 -int hitboxbouillieH = 0;  
42 -int hitboxbombeL = 0;  
43 -int hitboxbombeH = 0;  
44 -  
45 -//Initialisation des variables globales pour le main  
46 -void initialiser()  
47 -{  
48 - canon = chargerLutin ("../../Lutins/invader_canon.bmp",  
49 - COULEUR_NOIR);  
50 - missile = chargerLutin ("../../Lutins/invader_missile.bmp",  
51 - COULEUR_NOIR);  
52 - enemie1_1 = chargerLutin ("../../Lutins/invader_monstre2_1.bmp",  
53 - COULEUR_NOIR);  
54 - enemie1_2 = chargerLutin ("../../Lutins/invader_monstre2_2.bmp",  
55 - COULEUR_NOIR);  
56 - bouillie = chargerLutin ("../../Lutins/invader_monstre_bouillie.bmp",  
57 - COULEUR_NOIR);  
58 - bombe = chargerLutin ("../../Lutins/invader_bombe.bmp",  
59 - COULEUR_NOIR);  
60 -  
61 - tailleLutin (canon,  
62 - &hitboxcanonL,  
63 - &hitboxcanonH);  
64 -  
65 - tailleLutin (missile,  
66 - &hitboxmissileL,  
67 - &hitboxmissileH);  
68 - //La taille des enemmies que j'utilise est la meme dans ces 2 variantes  
69 - tailleLutin (enemie1_1,  
70 - &hitboxenemieL,  
71 - &hitboxenemieH);  
72 -  
73 - tailleLutin (bouillie,  
74 - &hitboxbouillieL,  
75 - &hitboxbouillieH);  
76 -  
77 - tailleLutin (bombe,  
78 - &hitboxbombeL,  
79 - &hitboxbombeH);  
80 -  
81 -}  
82 -  
83 -//Initialisation des coordonnées du joueur pour le main  
84 -void initialiserjoueur()  
85 -{  
86 - joueur.posx = JoueurX;  
87 - joueur.posy = JoueurY;  
88 - joueur.dropbombe = -1;  
89 -}  
90 -  
91 -//Page de démarage du jeu  
92 -char pagedemarrage()  
93 -{  
94 - static const char policeDefaut[] = "/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf";  
95 - char input = '\0';  
96 - evenement even = 0;  
97 - int Largeur = 0;  
98 - int Hauteur = 0;  
99 - char jouer[] = "Appuyer sur j pour Jouer";  
100 - char quitter[] = "Appuyer ailleurs pour Quitter";  
101 -  
102 - choisirPolice (policeDefaut, TaillePolice2);  
103 - int LutinJouer = lutinTexte (jouer, COULEUR_BLANC);  
104 - int LutinQuitter = lutinTexte (quitter, COULEUR_BLANC);  
105 -  
106 - choisirPolice (policeDefaut, TaillePolice1);  
107 - int LutinBienvenue = lutinTexte (Nom, COULEUR_VERT);  
108 -  
109 - rectanglePlein (0,  
110 - 0,  
111 - TailleX,  
112 - TailleY,  
113 - COULEUR_NOIR);  
114 -  
115 - tailleLutin (LutinBienvenue,  
116 - &Largeur,  
117 - &Hauteur);  
118 - afficherLutin (LutinBienvenue,  
119 - PositionX_1 - Largeur / 2,  
120 - PositionY_2 + Hauteur / 2);  
121 -  
122 - tailleLutin (LutinJouer,  
123 - &Largeur,  
124 - &Hauteur);  
125 - afficherLutin (LutinJouer,  
126 - PositionX_1 - Largeur / 2,  
127 - PositionY_1 - Hauteur / 2);  
128 -  
129 - tailleLutin (LutinQuitter,  
130 - &Largeur,  
131 - &Hauteur);  
132 - afficherLutin (LutinQuitter,  
133 - PositionX_1 - Largeur / 2,  
134 - PositionY_1 + Hauteur / 2);  
135 -  
136 - majSurface();  
137 - attendreEvenement ();  
138 -  
139 - lireEvenement (&even,  
140 - &input,  
141 - NULL);  
142 - while (input == '\0')  
143 - {  
144 - lireEvenement (&even,  
145 - &input,  
146 - NULL);  
147 - }  
148 - return input;  
149 -}  
150 -  
151 -//Page en cas de mort dans le jeu  
152 -void pagemort (int nbr_vie)  
153 -{  
154 - static const char policeDefaut[] = "/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf";  
155 - int Largeur = 0;  
156 - int Hauteur = 0;  
157 - char mort[] = "Vous etes mort";  
158 - char vie[TailleChaineMax] = "\0";  
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)  
165 -  
166 - choisirPolice (policeDefaut, TaillePolice1);  
167 - int LutinMort = lutinTexte(mort, COULEUR_ROUGE);  
168 -  
169 - choisirPolice (policeDefaut, TaillePolice2);  
170 - int LutinVie = lutinTexte(vie, COULEUR_BLANC);  
171 -  
172 - rectanglePlein (0,  
173 - 0,  
174 - TailleX,  
175 - TailleY,  
176 - COULEUR_NOIR);  
177 -  
178 - tailleLutin (LutinMort,  
179 - &Largeur,  
180 - &Hauteur);  
181 - afficherLutin (LutinMort,  
182 - PositionX_1 - Largeur / 2,  
183 - PositionY_2 + Hauteur / 2);  
184 -  
185 - tailleLutin (LutinVie,  
186 - &Largeur,  
187 - &Hauteur);  
188 - afficherLutin (LutinVie,  
189 - PositionX_1 - Largeur / 2,  
190 - PositionY_1 - Hauteur / 2);  
191 -}  
192 -  
193 -//Page de GameOver du jeu  
194 -void pageGameOver()  
195 -{  
196 - static const char policeDefaut[] = "/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf";  
197 - int Largeur = 0;  
198 - int Hauteur = 0;  
199 - char fin[] = "GAME OVER";  
200 -  
201 - choisirPolice(policeDefaut, TaillePolice1);  
202 - int LutinFin = lutinTexte(fin, COULEUR_ROUGE);  
203 -  
204 - rectanglePlein (0,  
205 - 0,  
206 - TailleX,  
207 - TailleY,  
208 - COULEUR_NOIR);  
209 -  
210 - tailleLutin (LutinFin,  
211 - &Largeur,  
212 - &Hauteur);  
213 - afficherLutin (LutinFin,  
214 - PositionX_1 - Largeur / 2,  
215 - PositionY_1 - Hauteur / 2);  
216 -  
217 -}  
218 -  
219 -//Page de Victoire du jeu  
220 -void pageVictoire()  
221 -{  
222 - static const char policeDefaut[] = "/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf";  
223 - int Largeur = 0;  
224 - int Hauteur = 0;  
225 - char fin[] = "VICTOIRE";  
226 -  
227 - choisirPolice(policeDefaut, TaillePolice1);  
228 - int LutinFin = lutinTexte(fin, COULEUR_VERT);  
229 -  
230 - rectanglePlein (0,  
231 - 0,  
232 - TailleX,  
233 - TailleY,  
234 - COULEUR_NOIR);  
235 -  
236 - tailleLutin (LutinFin,  
237 - &Largeur,  
238 - &Hauteur);  
239 - afficherLutin (LutinFin,  
240 - PositionX_1 - Largeur / 2,  
241 - PositionY_1 - Hauteur / 2);  
242 -  
243 -}  
Space Invader/Envahisseurs/Graphique/src/Main/init.h deleted
@@ -1,28 +0,0 @@ @@ -1,28 +0,0 @@
1 -extern int canon;  
2 -extern int missile;  
3 -extern int enemie1_1;  
4 -extern int enemie1_2;  
5 -extern int bouillie;  
6 -extern int bombe;  
7 -  
8 -extern struct entite joueur;  
9 -extern char Nom[];  
10 -extern char input;  
11 -  
12 -extern int hitboxcanonL;  
13 -extern int hitboxcanonH;  
14 -extern int hitboxmissileL;  
15 -extern int hitboxmissileH;  
16 -extern int hitboxenemieL;  
17 -extern int hitboxenemieH;  
18 -extern int hitboxbouillieL;  
19 -extern int hitboxbouillieH;  
20 -extern int hitboxbombeL;  
21 -extern int hitboxbombeH;  
22 -  
23 -void initialiser();  
24 -void initialiserjoueur();  
25 -char pagedemarrage();  
26 -void pagemort(int nbr_vie);  
27 -void pageGameOver();  
28 -void pageVictoire();  
Space Invader/Envahisseurs/Graphique/src/Main/main.c deleted
@@ -1,262 +0,0 @@ @@ -1,262 +0,0 @@
1 -#include <unistd.h>  
2 -#include <SDL/SDL.h>  
3 -#include "../Graphique/libgraph.h"  
4 -#include "../ListeC/Liste.h"  
5 -#include "../Monstre/Monstre.h"  
6 -#include "../Interactif/Interactif.h"  
7 -#include "init.h"  
8 -  
9 -#define TailleX 500  
10 -#define TailleY 500  
11 -#define Sol 475  
12 -#define EpaisseurSol 2  
13 -#define ErreurHitbox 2  
14 -  
15 -#define Nom "Space Invader"  
16 -#define NombreEnemieParLigne 8  
17 -#define NombreLigneEnemies 3  
18 -#define NombreVie 3  
19 -  
20 -#define BombeRandomFixe 50  
21 -#define BombeRandomAlea 30  
22 -  
23 -//Pour augmenter les deplacements des enemies, vous pouvez:  
24 -//Augmenter VitesseDeplacementEnemie  
25 -//Tout les VitesseDeplacementEnemie tours de boucle les enemies se déplace  
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  
30 -  
31 -#define Delai0_2s 200  
32 -#define Delai0_5s 500  
33 -#define Delai2s 2000  
34 -  
35 -#define VitesseTourdeBoucle 20  
36 -  
37 -int main()  
38 -{  
39 - creerSurface(TailleX,TailleY,Nom);  
40 -  
41 - initialiser();  
42 - initialiserjoueur();  
43 -  
44 - struct liste_entite* ListeEnemies = NULL;  
45 - struct liste_entite* ListeTires = NULL;  
46 - struct liste_entite* ListeBombes = NULL;  
47 -  
48 - //joueur est dans une liste afin d'utiliser des fonctions deja crée  
49 - struct liste_entite* Ljoueur = NULL;  
50 - ajout_tete(&Ljoueur,joueur);  
51 -  
52 -  
53 - LigneEnemie(&ListeEnemies,  
54 - NombreEnemieParLigne,  
55 - NombreLigneEnemies);  
56 - int SensVague=1;  
57 -  
58 - char input = '\0';  
59 - int TourdeBoucle = 0;  
60 - int TimeAlea = 0;  
61 - int CheckAlea = 0;  
62 - int mort = 0;  
63 - int nbr_vie = NombreVie;  
64 - int QuelMonstre = 0;  
65 - evenement even = 0;  
66 -  
67 - int coeur = chargerLutin ("../../Lutins/Coeur.bmp",  
68 - COULEUR_NOIR);  
69 - int hitboxcoeurL = 0;  
70 - int hitboxcoeurH = 0;  
71 -  
72 - tailleLutin (coeur,  
73 - &hitboxcoeurL,  
74 - &hitboxcoeurH);  
75 -  
76 - if ( pagedemarrage() != 'j')  
77 - {  
78 - return 0;  
79 - }  
80 - SDL_Delay(Delai0_5s);  
81 -  
82 - //Bouble principale  
83 - while(input!='m')  
84 - {  
85 - //Si le joueur est mort  
86 - if (mort == 1)  
87 - {  
88 - nbr_vie-=1;  
89 - //Si il lui reste des vies  
90 - if (nbr_vie > 0)  
91 - {  
92 - pagemort(nbr_vie);  
93 - majSurface();  
94 - SDL_Delay(Delai2s);  
95 - mort = 0;  
96 - }  
97 - //Si il n'a plus de vie  
98 - else  
99 - {  
100 - pageGameOver();  
101 - majSurface();  
102 - SDL_Delay(Delai2s);  
103 - return 0;  
104 - }  
105 - //On ajoute de nouveau le joueur précedement supprimé à sa liste  
106 - ajout_tete(&Ljoueur,joueur);  
107 - //Desallocation dynamique des listes  
108 - DesallouerListe(&ListeTires);  
109 - DesallouerListe(&ListeBombes);  
110 - }  
111 -  
112 - //Affichage Rectangle Noir sur toute la page  
113 - rectanglePlein(0,  
114 - 0,  
115 - TailleX,  
116 - TailleY,  
117 - COULEUR_NOIR);  
118 -  
119 - //Affichage des coeurs de vie  
120 - for (int i = 1 ; i <= nbr_vie; i++)  
121 - {  
122 - afficherLutin(coeur,  
123 - TailleX - i * hitboxcoeurL,  
124 - Sol);  
125 - }  
126 -  
127 - //Affichage du Sol  
128 - rectanglePlein(0,  
129 - Sol,  
130 - TailleX,  
131 - EpaisseurSol,  
132 - COULEUR_VERT);  
133 -  
134 - //Affichage du joueur  
135 - afficherLutin(canon,  
136 - Ljoueur->entite.posx - hitboxcanonL/2 + ErreurHitbox,  
137 - Ljoueur->entite.posy);  
138 -  
139 - //Affichage des ListeEnemies  
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 - }  
160 -  
161 - //Systeme pour faire drop une bombe dans un temps aléatoire  
162 - //Mise en place d'un timer  
163 - //TimeAlea représente le nombre de tour de boucle à éffectuer  
164 - if (TimeAlea == 0)  
165 - {  
166 - //50 tour de boucle minimum + une valeur de 0 à 31  
167 - TimeAlea = rand() % BombeRandomAlea + BombeRandomFixe;  
168 - //Il y a un warning car rand() à une valeur limite que l'on ne dépasse pas  
169 - }  
170 - //CheckAlea est incrémenté de 1 à chaque tour de boucle  
171 - //Lorsque celui ci vaut TimeAlea on peut drop une bombe  
172 - //On reset à 0 le Timer et le Check aprés avoir Drop une bombe  
173 - if (CheckAlea == TimeAlea)  
174 - {  
175 - MakeBombeDrop(ListeEnemies,  
176 - &ListeBombes);  
177 - TimeAlea=0;  
178 - CheckAlea=0;  
179 - }  
180 -  
181 - //Gestion des evenements clavier  
182 - //On ne peut appuyer que sur une seule touche à la fois  
183 - lireEvenement (&even,  
184 - &input,  
185 - NULL);  
186 - if (even == toucheBas)  
187 - {  
188 - action(&Ljoueur->entite,  
189 - input,  
190 - &ListeTires);  
191 - }  
192 -  
193 - //Deplacement des enemies tout les X tours de boucle  
194 - if (TourdeBoucle == VitesseDeplacementEnemie)  
195 - {  
196 - DeplacementEnemie(ListeEnemies,  
197 - &SensVague,  
198 - PasEnemie);  
199 - TourdeBoucle = 0;  
200 - }  
201 -  
202 - //Deplacement des Tires et Bombes  
203 - DeplacementTire(&ListeTires);  
204 - DeplacementBombe(&ListeBombes);  
205 -  
206 - //Supression si collision des Tires et Enemies  
207 - SupprimerEntitesEnCollision(&ListeTires,  
208 - hitboxmissileL,  
209 - hitboxmissileH,  
210 - &ListeEnemies,  
211 - hitboxenemieL,  
212 - hitboxenemieH);  
213 -  
214 - //Supression si collision des Bombes et Joueur  
215 - if (SupprimerEntitesEnCollision(&ListeBombes,  
216 - hitboxbombeL,  
217 - hitboxbombeH,  
218 - &Ljoueur,  
219 - hitboxcanonL,  
220 - hitboxcanonH) == 1)  
221 - {  
222 - mort = 1;  
223 - majSurface();  
224 - SDL_Delay(Delai0_2s);  
225 - }  
226 -  
227 - //Supression si collision des Enemies et Joueur  
228 - if (SupprimerEntitesEnCollision(&ListeEnemies,  
229 - hitboxenemieL,  
230 - hitboxenemieH,  
231 - &Ljoueur,  
232 - hitboxcanonL,  
233 - hitboxcanonH) == 1)  
234 - {  
235 - pageGameOver();  
236 - majSurface();  
237 - SDL_Delay(Delai2s);  
238 - return 0;  
239 - }  
240 -  
241 - //Si il n'y a plus d'enemies, c'est une victoire !!!  
242 - if (ListeEnemies == NULL)  
243 - {  
244 - majSurface();  
245 - SDL_Delay(Delai0_2s);  
246 - pageVictoire();  
247 - majSurface();  
248 - SDL_Delay(Delai2s);  
249 - return 0;  
250 - }  
251 -  
252 -  
253 - majSurface();  
254 -  
255 - TourdeBoucle += 1;  
256 - CheckAlea += 1;  
257 -  
258 - SDL_Delay(VitesseTourdeBoucle);  
259 -  
260 - }  
261 - return 0;  
262 -}  
Space Invader/Envahisseurs/Graphique/src/Monstre/Monstre.c deleted
@@ -1,103 +0,0 @@ @@ -1,103 +0,0 @@
1 -#include <stdlib.h>  
2 -#include "../Graphique/libgraph.h"  
3 -#include "../ListeC/Liste.h"  
4 -#include "Monstre.h"  
5 -  
6 -#define TailleX 500  
7 -#define TailleY 500  
8 -#define ErreurHitbox 2  
9 -  
10 -#define Taille1_10 (TailleX / 10)  
11 -#define Taille9_10 (9 * TailleX / 10)  
12 -#define TailleJump 30  
13 -  
14 -//Sens = 1 -> Va vers la droite  
15 -//Sens = 0 -> Va vers la gauche  
16 -void DeplacementEnemie(struct liste_entite* Liste,  
17 - int* SensDeplacement,  
18 - int Pas)  
19 -{  
20 -  
21 - int ind = 0;  
22 - struct liste_entite* pListe = Liste;  
23 -  
24 - while (pListe != NULL)  
25 - {  
26 - pListe->entite.posx += (*SensDeplacement == 1) ? Pas : -Pas;  
27 - if (pListe->entite.posx >= Taille9_10)  
28 - {  
29 - ind = 1;  
30 - }  
31 -  
32 - else if (pListe->entite.posx <= Taille1_10)  
33 - {  
34 - ind = 2;  
35 - }  
36 -  
37 - pListe = pListe->suivant;  
38 - }  
39 -  
40 - if (ind != 0)  
41 - {  
42 - *SensDeplacement = (ind == 1) ? 0 : 1;  
43 - struct liste_entite* p2Liste = Liste;  
44 -  
45 - while (p2Liste != NULL)  
46 - {  
47 - p2Liste->entite.posy += TailleJump;  
48 - p2Liste = p2Liste->suivant;  
49 - }  
50 - }  
51 -}  
52 -  
53 -//Création de lignes d'entités enemies dans la liste enemies  
54 -void LigneEnemie (struct liste_entite** ListeEnemie,  
55 - int nbr_enemies,  
56 - int nbr_rangee)  
57 -{  
58 -  
59 - for (int j = 1; j <= nbr_rangee; j++)  
60 - {  
61 - int compteurY = j * Taille1_10;  
62 - int compteurX = TailleX / (nbr_enemies+1);  
63 -  
64 - for (int i = 0; i < nbr_enemies; i++)  
65 - {  
66 - if (j == nbr_rangee)  
67 - {  
68 - ajout_tete(ListeEnemie,  
69 - creer_entite(compteurX,  
70 - compteurY,  
71 - 1));  
72 - compteurX += 2 * TailleX / (3 * nbr_enemies);  
73 - }  
74 -  
75 - else  
76 - {  
77 - ajout_tete(ListeEnemie,  
78 - creer_entite(compteurX,  
79 - compteurY,  
80 - 0));  
81 - compteurX += 2 * TailleX / (3 * nbr_enemies);  
82 - }  
83 - }  
84 - }  
85 -}  
86 -  
87 -//Affichage des enemies centrés dans leur hitbox  
88 -void AfficherEnemie (struct liste_entite* Liste,  
89 - int lutin,  
90 - int Largeur,  
91 - int Hauteur)  
92 -{  
93 -  
94 - struct liste_entite* pListe = Liste;  
95 -  
96 - while (pListe != NULL)  
97 - {  
98 - afficherLutin(lutin,  
99 - pListe->entite.posx - Largeur / 2 + ErreurHitbox,  
100 - pListe->entite.posy - Hauteur / 2 + ErreurHitbox);  
101 - pListe=pListe->suivant;  
102 - }  
103 -}  
Space Invader/Envahisseurs/Graphique/src/Monstre/Monstre.h deleted
@@ -1,12 +0,0 @@ @@ -1,12 +0,0 @@
1 -void DeplacementEnemie(struct liste_entite* Liste,  
2 - int* SensDeplacement,  
3 - int Pas);  
4 -  
5 -void LigneEnemie (struct liste_entite** ListeEnemie,  
6 - int nbr_enemies,  
7 - int nbr_rangee);  
8 -  
9 -void AfficherEnemie (struct liste_entite* Liste,  
10 - int lutin,  
11 - int Largeur,  
12 - int Hauteur);  
Space Invaders/Envahisseurs/Graphique/Lutins/Coeur.bmp deleted
No preview for this file type
Space Invaders/Envahisseurs/Graphique/Lutins/invader_bombe.bmp deleted
No preview for this file type
Space Invaders/Envahisseurs/Graphique/Lutins/invader_bouclier.bmp deleted
No preview for this file type
Space Invaders/Envahisseurs/Graphique/Lutins/invader_canon.bmp deleted
No preview for this file type
Space Invaders/Envahisseurs/Graphique/Lutins/invader_canon_ferraille.bmp deleted
No preview for this file type
Space Invaders/Envahisseurs/Graphique/Lutins/invader_missile.bmp deleted
No preview for this file type
Space Invaders/Envahisseurs/Graphique/Lutins/invader_monstre1_1.bmp deleted
No preview for this file type
Space Invaders/Envahisseurs/Graphique/Lutins/invader_monstre1_2.bmp deleted
No preview for this file type
Space Invaders/Envahisseurs/Graphique/Lutins/invader_monstre2_1.bmp deleted
No preview for this file type
Space Invaders/Envahisseurs/Graphique/Lutins/invader_monstre2_2.bmp deleted
No preview for this file type
Space Invaders/Envahisseurs/Graphique/Lutins/invader_monstre3_1.bmp deleted
No preview for this file type
Space Invaders/Envahisseurs/Graphique/Lutins/invader_monstre3_2.bmp deleted
No preview for this file type
Space Invaders/Envahisseurs/Graphique/Lutins/invader_monstre_bouillie.bmp deleted
No preview for this file type
Space Invaders/Envahisseurs/Graphique/Lutins/invader_ovni.bmp deleted
No preview for this file type
Space Invaders/Envahisseurs/Graphique/Lutins/millepatte_champi.bmp deleted
No preview for this file type
Space Invaders/Envahisseurs/Graphique/Lutins/millepatte_corps_bas.bmp deleted
No preview for this file type
Space Invaders/Envahisseurs/Graphique/Lutins/millepatte_corps_droite.bmp deleted
No preview for this file type
Space Invaders/Envahisseurs/Graphique/Lutins/millepatte_corps_gauche.bmp deleted
No preview for this file type
Space Invaders/Envahisseurs/Graphique/Lutins/millepatte_corps_haut.bmp deleted
No preview for this file type
Space Invaders/Envahisseurs/Graphique/Lutins/millepatte_tete_bas.bmp deleted
No preview for this file type
Space Invaders/Envahisseurs/Graphique/Lutins/millepatte_tete_droite.bmp deleted
No preview for this file type
Space Invaders/Envahisseurs/Graphique/Lutins/millepatte_tete_gauche.bmp deleted
No preview for this file type
Space Invaders/Envahisseurs/Graphique/Lutins/millepatte_tete_haut.bmp deleted
No preview for this file type
Space Invaders/Envahisseurs/Graphique/src/Graphique/Makefile deleted
@@ -1,29 +0,0 @@ @@ -1,29 +0,0 @@
1 -#  
2 -# Makefile pour la bibliotheque graphique  
3 -#  
4 -  
5 -SOURCES = $(wildcard *.c)  
6 -OBJETS = $(SOURCES:.c=.o)  
7 -CIBLE = libgraph.a  
8 -  
9 -#  
10 -# Nom de la cible principale  
11 -#  
12 -  
13 -all: $(CIBLE)  
14 -  
15 -#  
16 -# Cible de nettoyage  
17 -#  
18 -  
19 -clean:  
20 - rm -f core *.o $(CIBLE)  
21 -  
22 -#  
23 -# Dependances pour la bibliotheque  
24 -#  
25 -  
26 -$(CIBLE): $(OBJETS)  
27 - $(AR) rs $@ $?  
28 -  
29 -$(CIBLE:.a=).o: $(CIBLE:.a=).c $(CIBLE:.a=).h  
Space Invaders/Envahisseurs/Graphique/src/Graphique/libgraph.c deleted
@@ -1,239 +0,0 @@ @@ -1,239 +0,0 @@
1 -/**** Bibliotheque graphique ****/  
2 -  
3 -/** Fichiers d'inclusion **/  
4 -  
5 -#include <SDL/SDL.h>  
6 -#include <SDL/SDL_ttf.h>  
7 -#include "libgraph.h"  
8 -  
9 -/** Types **/  
10 -  
11 -typedef struct  
12 -{  
13 - int r, v, b;  
14 -} couleur;  
15 -  
16 -/** Constantes **/  
17 -  
18 -#define BITS_PAR_PIXEL 32  
19 -#define TAILLE_POLICE 20  
20 -  
21 -static const couleur couleurs[] = { { 255, 255, 255 }, { 0, 0, 0 }, { 255, 0, 0 },  
22 - { 0, 255, 0 }, { 0, 0, 255 }, { 255, 105, 180 },  
23 - { 150, 150, 150 }, { -1, -1, -1 } };  
24 -  
25 -static const char policeDefaut[]="/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf";  
26 -  
27 -/** Variables globales **/  
28 -  
29 -static SDL_Surface *surface;  
30 -TTF_Font* police;  
31 -  
32 -/** Fonctions **/  
33 -  
34 -void choisirPolice(const char *chemin, int taille){  
35 - police=TTF_OpenFont(chemin, taille);  
36 -}  
37 -  
38 -void initialiserTexte() {  
39 - TTF_Init();  
40 - choisirPolice(policeDefaut, TAILLE_POLICE);  
41 -}  
42 -  
43 -/* Initialisation de la surface dessinable */  
44 -unsigned char creerSurface (int largeur, int hauteur, char *titre)  
45 -{  
46 - SDL_Init (SDL_INIT_VIDEO);  
47 - SDL_WM_SetCaption (titre, titre);  
48 - surface = SDL_SetVideoMode (largeur, hauteur, BITS_PAR_PIXEL, SDL_DOUBLEBUF);  
49 - initialiserTexte();  
50 -  
51 - return (surface != NULL && police != NULL);  
52 -}  
53 -  
54 -/* Fermeture de la surface dessinable */  
55 -  
56 -void fermerSurface (void)  
57 -{  
58 - if (surface != NULL) SDL_FreeSurface (surface);  
59 - if (police != NULL) TTF_CloseFont(police);  
60 - TTF_Quit();  
61 - SDL_Quit ();  
62 -}  
63 -  
64 -/* Creation d'une couleur */  
65 -  
66 -static int creerCouleur (int ncouleur)  
67 -{  
68 - couleur c = couleurs[ncouleur];  
69 - return SDL_MapRGB (surface->format, c.r, c.v, c.b);  
70 -}  
71 -  
72 -/* Dessin d'un rectangle plein */  
73 -  
74 -void rectanglePlein (int x, int y, int l, int h, int c)  
75 -{  
76 - SDL_Rect rectangle = { x, y, l, h };  
77 - SDL_FillRect (surface, &rectangle, creerCouleur (c));  
78 - // SDL_Flip(surface);  
79 -}  
80 -  
81 -/* Manipulation de lutins */  
82 -  
83 -static SDL_Surface *lutins[MAX_LUTINS];  
84 -static int lutins_nb = 0;  
85 -  
86 -int lutinTexte(char* texte, int couleurTexte) {  
87 - couleur c=couleurs[couleurTexte];  
88 - SDL_Color couleur={c.r, c.v, c.b};  
89 - SDL_Surface* lutin=TTF_RenderText_Solid(police, texte, couleur);  
90 - if (lutin != NULL)  
91 - {  
92 - lutins[lutins_nb++] = lutin;  
93 - return lutins_nb - 1;  
94 - }  
95 - return -1;  
96 -}  
97 -  
98 -static void configurerLutin (SDL_Surface *lutin, int ncouleur)  
99 -{  
100 - couleur c = couleurs[ncouleur];  
101 - int fond = SDL_MapRGB (lutin->format, c.r, c.v, c.b);  
102 - SDL_SetColorKey (lutin, SDL_SRCCOLORKEY | SDL_RLEACCEL, fond);  
103 -}  
104 -  
105 -int chargerLutin (char *fichier, int couleur)  
106 -{  
107 - if (lutins_nb >= MAX_LUTINS) return -2;  
108 - SDL_Surface *lutin = SDL_LoadBMP (fichier);  
109 - if (lutin != NULL)  
110 - {  
111 - lutins[lutins_nb++] = lutin;  
112 - if (couleur >= 0) configurerLutin (lutin, couleur);  
113 - return lutins_nb - 1;  
114 - }  
115 - return -1;  
116 -}  
117 -  
118 -void afficherLutin (int lutin, int x, int y)  
119 -{  
120 - SDL_Rect position;  
121 - position.x = x;  
122 - position.y = y;  
123 - SDL_BlitSurface (lutins[lutin], NULL, surface, &position);  
124 -}  
125 -  
126 -int creerLutin (int x, int y, int largeur, int hauteur, int couleur)  
127 -{  
128 - if (lutins_nb >= MAX_LUTINS) return -2;  
129 - int rmask, gmask, bmask, amask;  
130 -#if SDL_BYTEORDER == SDL_BIG_ENDIAN  
131 - rmask = 0xff000000;  
132 - gmask = 0x00ff0000;  
133 - bmask = 0x0000ff00;  
134 - amask = 0x000000ff;  
135 -#else  
136 - rmask = 0x000000ff;  
137 - gmask = 0x0000ff00;  
138 - bmask = 0x00ff0000;  
139 - amask = 0xff000000;  
140 -#endif  
141 - if (couleur < 0) amask = 0x00000000;  
142 - SDL_Surface *lutin =  
143 - SDL_CreateRGBSurface (0, largeur, hauteur, BITS_PAR_PIXEL, rmask, gmask, bmask, amask);  
144 - SDL_Rect fenetre;  
145 - fenetre.x = x;  
146 - fenetre.y = y;  
147 - fenetre.h = hauteur;  
148 - fenetre.w = largeur;  
149 - SDL_BlitSurface (surface, &fenetre, lutin, NULL);  
150 - lutins[lutins_nb++] = lutin;  
151 - if (couleur >= 0) configurerLutin (lutin, couleur);  
152 - return lutins_nb - 1;  
153 -}  
154 -  
155 -void tailleLutin (int lutin, int *largeur, int *hauteur)  
156 -{  
157 - *largeur = lutins[lutin]->w;  
158 - *hauteur = lutins[lutin]->h;  
159 -}  
160 -  
161 -int sauverLutin (int lutin, char *nom) { return SDL_SaveBMP (lutins[lutin], nom); }  
162 -  
163 -/* Manipulation de copie de surface en BMP */  
164 -  
165 -int sauverSurface (char *fichier) { return SDL_SaveBMP (surface, fichier); }  
166 -  
167 -unsigned char chargerSurface (char *fichier)  
168 -{  
169 - SDL_Surface *image = SDL_LoadBMP (fichier);  
170 - if (image != NULL)  
171 - {  
172 - SDL_BlitSurface (image, NULL, surface, NULL);  
173 - SDL_Flip (surface);  
174 - }  
175 - return (image != NULL);  
176 -}  
177 -  
178 -void majSurface (void) { SDL_Flip (surface); }  
179 -  
180 -/* Trouver la couleur d'un pixel */  
181 -  
182 -int couleurPixel (int x, int y)  
183 -{  
184 - int bpp = surface->format->BytesPerPixel;  
185 - Uint32 *p = (Uint32 *)(surface->pixels + y * surface->pitch + x * bpp);  
186 - Uint8 r, v, b;  
187 - SDL_GetRGB (*p, surface->format, &r, &v, &b);  
188 - int i = 0;  
189 - while (1)  
190 - {  
191 - if (couleurs[i].r < 0) break;  
192 - if (r == couleurs[i].r && v == couleurs[i].v && b == couleurs[i].b) break;  
193 - i++;  
194 - }  
195 - if (couleurs[i].r < 0)  
196 - return -1;  
197 - else  
198 - return i;  
199 -}  
200 -  
201 -/* Fonction de traitement des événements */  
202 -  
203 -void lireEvenement (evenement *evt, char *touche, void **detail)  
204 -{  
205 - static SDL_keysym _detail;  
206 - SDL_Event event;  
207 - while (SDL_PollEvent (&event))  
208 - {  
209 - if (event.type == SDL_QUIT) *evt = quitter;  
210 - if (event.type == SDL_KEYDOWN || event.type == SDL_KEYUP)  
211 - {  
212 - *evt = (event.type == SDL_KEYDOWN) ? toucheBas : toucheHaut;  
213 - char *nom = SDL_GetKeyName (event.key.keysym.sym);  
214 - if (strlen (nom) == 1 && nom[0] >= 32 && nom[0] < 128)  
215 - *touche = nom[0];  
216 - else  
217 - *touche = 0;  
218 - if (detail != NULL)  
219 - {  
220 - _detail = event.key.keysym;  
221 - *detail = &_detail;  
222 - }  
223 - break;  
224 - }  
225 - }  
226 -}  
227 -  
228 -void attendreEvenement (void)  
229 -{  
230 - SDL_Event event;  
231 - while (SDL_WaitEvent (&event)) switch (event.type)  
232 - {  
233 - case SDL_QUIT:  
234 - exit (0);  
235 - case SDL_KEYDOWN:  
236 - case SDL_MOUSEBUTTONDOWN:  
237 - return;  
238 - }  
239 -}  
Space Invaders/Envahisseurs/Graphique/src/Graphique/libgraph.h deleted
@@ -1,156 +0,0 @@ @@ -1,156 +0,0 @@
1 -/**** Bibliotheque graphique (definitions) ****/  
2 -  
3 -/** Constantes **/  
4 -  
5 -#define COULEUR_BLANC 0  
6 -#define COULEUR_NOIR 1  
7 -#define COULEUR_ROUGE 2  
8 -#define COULEUR_VERT 3  
9 -#define COULEUR_BLEU 4  
10 -#define COULEUR_ROSE 5  
11 -#define COULEUR_GRIS 6  
12 -  
13 -#define MAX_LUTINS 16  
14 -  
15 -typedef enum {toucheBas, toucheHaut, quitter} evenement;  
16 -  
17 -/** Prototypes **/  
18 -  
19 -/**  
20 - * @brief cree une fenetre 2D  
21 - *  
22 - * @param largeur en pixels de la fenetre  
23 - * @param hauteur en pixels de la fenetre  
24 - * @param titre de la fenetre (chaine de caractere)  
25 - */  
26 -unsigned char creerSurface (int largeur, int hauteur, char *titre);  
27 -  
28 -/**  
29 - * @brief permet de charger un fichier image au format bmp (bitmap)  
30 - *  
31 - * @param fichier nom du fichier  
32 - */  
33 -unsigned char chargerSurface (char *fichier);  
34 -  
35 -  
36 -/**  
37 - * @brief permet de sauvegarder une surface en image (format bmp)  
38 - *  
39 - * @param fichier nom du fichier  
40 - * @return 0 si OK, valeur negative sinon  
41 - */  
42 -int sauverSurface (char *fichier);  
43 -  
44 -/**  
45 - * @brief met a jour la surface d'affichage  
46 - */  
47 -void majSurface (void);  
48 -  
49 -  
50 -/**  
51 - * @brief libere la surface d'affichage  
52 - * a faire lors de la fermeture  
53 - * du programme  
54 - */  
55 -void fermerSurface (void);  
56 -  
57 -/**  
58 - * @brief choisit la police de caractères à utiliser pour afficher du texte  
59 - * @param chemin nom du fichier de police (format .ttf, voir /usr/share/fonts/truetype)  
60 - * @param taille taille de la police  
61 - */  
62 -void choisirPolice(const char *chemin, int taille);  
63 -  
64 -/**  
65 - * @brief dessine un rectange de taille (l,h) aux coordonnêes  
66 - * (x,y) et de couleur c  
67 - *  
68 - * @param x 0 <= x <= l_surface  
69 - * @param y 0 <= y <= h_surface  
70 - * @param l largeur en pixels  
71 - * @param h longueur en pixels  
72 - * @param c indice de couleur voir variable couleurs dans le fichier .c  
73 - */  
74 -void rectanglePlein (int x, int y, int l, int h, int c);  
75 -  
76 -  
77 -/**  
78 - * @brief permet de determiner l'indice du tableau de couleur du  
79 - * pixel aux coordonnees (x,y)  
80 - *  
81 - * @param x 0 <= x <= l_surface  
82 - * @param y 0 <= y <= h_surface  
83 - * @return indice de couleur voire variable couleurs dans le fichier .c  
84 - */  
85 -int couleurPixel (int x, int y);  
86 -  
87 -/**  
88 - * @brief crée un lutin à partir d'un texte  
89 - *  
90 - * @param texte le texte  
91 - * @param couleur indice de couleur du texte  
92 - * @return numero de lutin dans le tableau dynamique de lutin (< MAX_LUTINS)  
93 - */  
94 -int lutinTexte(char *texte, int couleur);  
95 -  
96 -/**  
97 - * @brief charge un lutin à partir du fichier  
98 - *  
99 - * @param fichier image bitmap du lutin à charger  
100 - * @param couleur indice de couleurs à charger  
101 - * @return numero de lutin dans le tableau dynamique de lutin (< MAX_LUTINS)  
102 - */  
103 -int chargerLutin (char *fichier, int couleur);  
104 -  
105 -/**  
106 - * @brief afficher un lutin aux coordonnées (x,y)  
107 - *  
108 - * @param lutin numero du lutin à afficher (< MAX_LUTINS)  
109 - * @param x abscisse de départ  
110 - * @param y ordonnée de départ  
111 - */  
112 -void afficherLutin (int lutin, int x, int y);  
113 -  
114 -/**  
115 - * @brief creer un lutin de taille (l,h) aux coordonnées (x,y)  
116 - *  
117 - * @param x abscisse de départ  
118 - * @param y ordonnée de départ  
119 - * @param largeur largeur du lutin  
120 - * @param hauteur hauteur du lutin  
121 - * @param couleur indice de couleur à partir du tableau _couleurs_  
122 - * @return indice du lutin dans le tableau global (< MAX_LUTINS)  
123 - */  
124 -int creerLutin (int x, int y, int largeur, int hauteur, int couleur);  
125 -  
126 -/**  
127 - * @brief sauvegarde un lutin dans un fichier  
128 - *  
129 - * @param lutin numero de lutin à sauvegarder (< MAX_LUTINS)  
130 - * @param nom fichier pour la sauvegarde  
131 - * @return 0 si OK valeur négative sinon  
132 - */  
133 -int sauverLutin (int lutin, char *nom);  
134 -  
135 -/**  
136 - * @brief calcule la taille (largeur,hauteur) d'un lutin  
137 - *  
138 - * @param lutin index du lutin (< MAX_LUTINS)  
139 - * @param largeur pointeur sur la largeur  
140 - * @param hauteur pointeur sur la hauteur  
141 - */  
142 -void tailleLutin (int lutin, int *largeur, int *hauteur);  
143 -  
144 -/**  
145 - * @brief lire une touche au clavier  
146 - *  
147 - * @param evt pointeur sur evenement  
148 - * @param touche pointeur sur la touche pressée  
149 - * @param detail NULL ou keysim  
150 - */  
151 -void lireEvenement (evenement *evt, char *touche, void **detail);  
152 -  
153 -/**  
154 - * @brief attente d'un evenement bouton, souris, fin de programme  
155 - */  
156 -void attendreEvenement (void);  
Space Invaders/Envahisseurs/Graphique/src/Interactif/Interactif.c deleted
@@ -1,375 +0,0 @@ @@ -1,375 +0,0 @@
1 -#include <stdlib.h>  
2 -#include <string.h>  
3 -  
4 -#include "../Graphique/libgraph.h"  
5 -#include "../ListeC/Liste.h"  
6 -#include "Interactif.h"  
7 -#include "../Main/init.h"  
8 -  
9 -#define TailleX 500  
10 -#define TailleY 500  
11 -#define Sol 475  
12 -#define ErreurHitbox 2  
13 -#define TailleX9_10 (9 * TailleX / 10)  
14 -#define TailleX1_10 (TailleX / 10)  
15 -  
16 -#define ValeurDeplacementTire 5  
17 -#define ValeurDeplacementJoueur 3  
18 -#define ValeurDeplacementBombe 2  
19 -  
20 -  
21 -//La fonction renvoie 1 si il y a collision  
22 -int CheckCollisionEntiteEntite (struct entite entite1,  
23 - int L1,  
24 - int H1,  
25 - struct entite entite2,  
26 - int L2,  
27 - int H2)  
28 -{  
29 - //CheckX  
30 - int gauche1 = entite1.posx - L1/2 + ErreurHitbox;  
31 - int droite1 = entite1.posx + L1/2 - ErreurHitbox;  
32 - int gauche2 = entite2.posx - L2/2 + ErreurHitbox;  
33 - int droite2 = entite2.posx + L2/2 - ErreurHitbox;  
34 - //Tout les cas possibles de collision  
35 - int CheckX = (gauche1 >= gauche2 && gauche1 <= droite2) ||  
36 - (droite1 >= gauche2 && droite1 <= droite2) ||  
37 - (gauche1 >= gauche2 && droite1 <= droite2) ||  
38 - (gauche2 >= gauche1 && droite2 <= droite1);  
39 -  
40 - //CheckY  
41 - int haut1 = entite1.posy - H1/2 + ErreurHitbox;  
42 - int bas1 = entite1.posy + H1/2 - ErreurHitbox;  
43 - int haut2 = entite2.posy - H2/2 + ErreurHitbox;  
44 - int bas2 = entite2.posy + H2/2 - ErreurHitbox;  
45 - int CheckY = (haut1 <= bas2 && haut1 >= haut2) ||  
46 - (bas1 <= bas2 && bas1 >= haut2) ||  
47 - (haut1 <= haut2 && bas1 >= bas2) ||  
48 - (haut2 <= haut1 && bas2 >= bas1);  
49 -  
50 -  
51 - return CheckX && CheckY;  
52 -}  
53 -  
54 -//La fonction renvoie l'entite de la Liste1 si il y a collision  
55 -struct entite* CheckCollisionListeEntite (struct liste_entite* Liste1,  
56 - int L1,  
57 - int H1,  
58 - struct entite entite2,  
59 - int L2,  
60 - int H2)  
61 -{  
62 -  
63 - struct liste_entite *pListe1 = Liste1;  
64 - while (pListe1 != NULL)  
65 - {  
66 -  
67 - if(CheckCollisionEntiteEntite (pListe1->entite,  
68 - L1,  
69 - H1,  
70 - entite2,  
71 - L2,  
72 - H2) == 1)  
73 - {  
74 - return &pListe1->entite;  
75 - }  
76 -  
77 - pListe1 = pListe1->suivant;  
78 - }  
79 - return NULL;  
80 -}  
81 -  
82 -  
83 -  
84 -//La fonction renvoie une liste d'entite avec les deux entites à supprimer  
85 -//Seulement si il y a collision  
86 -struct liste_entite* CheckCollisionListeListe (struct liste_entite* Liste1,  
87 - int L1,  
88 - int H1,  
89 - struct liste_entite* Liste2,  
90 - int L2,  
91 - int H2)  
92 -{  
93 -  
94 - struct liste_entite *pListe2 = Liste2;  
95 - while (pListe2 != NULL)  
96 - {  
97 -  
98 - struct entite* collision = CheckCollisionListeEntite (Liste1,  
99 - L1,  
100 - H1,  
101 - pListe2->entite,  
102 - L2,  
103 - H2);  
104 - if (collision == NULL)  
105 - {  
106 - pListe2 = pListe2->suivant;  
107 - }  
108 -  
109 - else  
110 - {  
111 - // Création des structures pour les deux entités  
112 - struct liste_entite* Entite1 = malloc(sizeof(struct liste_entite));  
113 - struct liste_entite* Entite2 = malloc(sizeof(struct liste_entite));  
114 -  
115 - // Remplissage des structure avec les entités correspondantes  
116 - Entite1->entite = *collision;  
117 - Entite2->entite = pListe2->entite;  
118 -  
119 - // Relier les structures entre elles  
120 - Entite1->suivant = Entite2;  
121 - Entite2->suivant = NULL;  
122 -  
123 - return Entite1;  
124 - }  
125 - }  
126 -  
127 - return NULL;  
128 -}  
129 -  
130 -//Tire un missile, il ne peux y en avoir que un à la fois  
131 -void Tirer (struct entite joueur,  
132 - struct liste_entite** pl)  
133 -{  
134 - if (*pl == NULL)  
135 - {  
136 - ajout_tete(pl,  
137 - creer_entite(joueur.posx,  
138 - joueur.posy,  
139 - -1));  
140 - }  
141 -}  
142 -  
143 -  
144 -void DeplacementTire(struct liste_entite** Liste)  
145 -{  
146 - struct entite* Entite = &(*Liste)->entite;  
147 - if (Entite != NULL)  
148 - {  
149 -  
150 - if (Entite->posy <= 0)  
151 - {  
152 - afficherLutin(bouillie,  
153 - Entite->posx - hitboxbouillieL/2 + ErreurHitbox,  
154 - Entite->posy);  
155 - SupprimerEntite(Liste, Entite);  
156 - }  
157 -  
158 - else  
159 - {  
160 - Entite->posy -= ValeurDeplacementTire;  
161 - //Je divise ErreurHitbox par 2 car l'erreur du missile  
162 - //est plus petite que pour les autres images  
163 - afficherLutin(missile,  
164 - Entite->posx - hitboxmissileL/2 + ErreurHitbox/2,  
165 - Entite->posy - hitboxmissileH/2 + ErreurHitbox/2);  
166 - }  
167 - }  
168 -}  
169 -  
170 -  
171 -//La fonction fait une action soit au joueur  
172 -//soit à la Liste des Tires selon la touche préssée  
173 -void action(struct entite* joueur,  
174 - char c,  
175 - struct liste_entite** tires)  
176 -{  
177 - switch (c)  
178 - {  
179 - case 'd':  
180 - if (joueur->posx <= TailleX9_10)  
181 - {  
182 - joueur->posx += ValeurDeplacementJoueur;  
183 - }  
184 - break;  
185 - case 'q':  
186 - if (joueur->posx >= TailleX1_10)  
187 - {  
188 - joueur->posx -= ValeurDeplacementJoueur;  
189 - }  
190 - break;  
191 - case 't':  
192 - Tirer(*joueur,  
193 - tires);  
194 - break;  
195 - default:  
196 - break;  
197 - }  
198 -}  
199 -  
200 -/*  
201 -La fonction crée une liste de tout les enemies pouvant drop des bombes  
202 -Seulement ceux les plus bas de leur colonne repective  
203 -Puis ajoute à la liste bombe,  
204 -une bombe provenant d'un des enemies pouvant drop des bombes  
205 -Le choix de quel enemie drop la bombe est aléatoire  
206 -*/  
207 -void MakeBombeDrop (struct liste_entite* enemies,  
208 - struct liste_entite** bombes)  
209 -{  
210 -  
211 - struct liste_entite* pListe = enemies;  
212 - struct liste_entite* Dropable = NULL;  
213 - int taille = 0;  
214 -  
215 - while (pListe != NULL)  
216 - {  
217 -  
218 - if (pListe->entite.dropbombe == 1)  
219 - {  
220 - ajout_tete(&Dropable,pListe->entite);  
221 - taille += 1;  
222 - }  
223 -  
224 - pListe = pListe->suivant;  
225 - }  
226 -  
227 - if(Dropable == NULL)  
228 - {  
229 - return;  
230 - }  
231 - /*  
232 - On choisit une valeur aléatoire représentant l'enemie qui va drop la bombe  
233 - Il ya un warning comme quoi rand() à une limite  
234 - Mais on ne la dépassera jamais, taille ne pourra  
235 - jamais excédé une vingtaine d'enemies par ligne  
236 - */  
237 - int randomIndex = rand() % taille-1;  
238 - struct liste_entite* pDropable = Dropable;  
239 -  
240 - for (int i = 0; i <= randomIndex; i++)  
241 - {  
242 - pDropable = pDropable->suivant;  
243 - }  
244 -  
245 - ajout_tete(bombes,  
246 - creer_entite(pDropable->entite.posx,  
247 - pDropable->entite.posy,  
248 - -1));  
249 -}  
250 -  
251 -  
252 -void DeplacementBombe(struct liste_entite** Liste)  
253 -{  
254 - struct liste_entite* pListe = *Liste;  
255 -  
256 - while (pListe != NULL)  
257 - {  
258 -  
259 - if (pListe->entite.posy + hitboxbombeH/2 - ErreurHitbox >= Sol)  
260 - {  
261 - struct entite* a_supprimer = &pListe->entite;  
262 -  
263 - pListe = pListe->suivant;  
264 - SupprimerEntite(Liste,a_supprimer);  
265 - }  
266 -  
267 - else  
268 - {  
269 - pListe->entite.posy += ValeurDeplacementBombe;  
270 - afficherLutin(bombe,  
271 - pListe->entite.posx - hitboxbombeL/2 + ErreurHitbox,  
272 - pListe->entite.posy - hitboxbombeH/2 + ErreurHitbox);  
273 - pListe = pListe->suivant;  
274 - }  
275 - }  
276 -}  
277 -  
278 -/*  
279 -Si un enemie est éliminé et qu'il etait le plus bas de sa colonne  
280 -(il pouvait drop des bombes)  
281 -Alors si il y en a un, l'enemie au dessus de lui (de la meme colonne)  
282 -peut maintenant drop des bombes  
283 -*/  
284 -void NouveauDroppeurBombe (struct liste_entite** liste,  
285 - struct entite* entite)  
286 -{  
287 -  
288 - int posx = entite->posx;  
289 - int posy = entite->posy;  
290 - struct liste_entite* pListe = *liste;  
291 - struct entite* entite_basse = NULL;  
292 -  
293 - // On parcourt la liste et on cherche  
294 - //l'entité la plus basse ayant la même position x  
295 - while (pListe != NULL)  
296 - {  
297 - //On ne regarde pas les enemies qui sont sur la meme ligne  
298 - if (pListe->entite.posy != posy)  
299 - {  
300 - //Si meme colonne et qu'il n'y a pas d'entite_basse  
301 - if (pListe->entite.posx == posx &&  
302 - entite_basse == NULL)  
303 - {  
304 - entite_basse = &pListe->entite;  
305 - }  
306 -  
307 - //Si meme colonne mais qu'il y a deja une entite_basse  
308 - //On compare la hauteur de l'entite avec l'entite_basse  
309 - else if (pListe->entite.posx == posx &&  
310 - pListe->entite.posy > entite_basse->posy)  
311 - {  
312 - entite_basse = &pListe->entite;  
313 - }  
314 - }  
315 -  
316 - pListe = pListe->suivant;  
317 - }  
318 -  
319 - // Si aucune entité n'est située plus bas que l'entité en question,  
320 - //On ne peut pas dropper la bombe  
321 - if (entite_basse == NULL)  
322 - {  
323 - return;  
324 - }  
325 -  
326 - entite_basse->dropbombe = 1;  
327 -}  
328 -  
329 -  
330 -  
331 -//Fonction Main qui supprime les entités rentrées en collision de leur liste  
332 -int SupprimerEntitesEnCollision (struct liste_entite** Liste1,  
333 - int L1,  
334 - int H1,  
335 - struct liste_entite** Liste2,  
336 - int L2,  
337 - int H2)  
338 -{  
339 -  
340 - struct liste_entite* collision = CheckCollisionListeListe(*Liste1,  
341 - L1,  
342 - H1,  
343 - *Liste2,  
344 - L2,  
345 - H2);  
346 - if (collision != NULL)  
347 - {  
348 - // Récupération des entités impliquées  
349 - struct entite* Entite1 = &collision->entite;  
350 - struct entite* Entite2 = &collision->suivant->entite;  
351 -  
352 - if (Entite1->dropbombe == 1)  
353 - {  
354 - NouveauDroppeurBombe(Liste1,Entite1);  
355 - }  
356 -  
357 - if (Entite2->dropbombe == 1)  
358 - {  
359 - NouveauDroppeurBombe(Liste2,Entite2);  
360 - }  
361 -  
362 - // Suppression de l'entité 1 de la liste 1  
363 - SupprimerEntite(Liste1, Entite1);  
364 - // Suppression de l'entité 2 de la liste 2  
365 - SupprimerEntite(Liste2, Entite2);  
366 -  
367 - afficherLutin (bouillie,  
368 - Entite2->posx - hitboxbouillieL/2 + ErreurHitbox,  
369 - Entite2->posy - hitboxbouillieH/2 + ErreurHitbox);  
370 - return 1;  
371 - }  
372 - return 0;  
373 -}  
374 -  
375 -  
Space Invaders/Envahisseurs/Graphique/src/Interactif/Interactif.h deleted
@@ -1,44 +0,0 @@ @@ -1,44 +0,0 @@
1 -int CheckCollisionEntiteEntite (struct entite entite1,  
2 - int L1,  
3 - int H1,  
4 - struct entite entite2,  
5 - int L2,  
6 - int H2);  
7 -  
8 -struct entite* CheckCollisionListeEntite (struct liste_entite* Liste1,  
9 - int L1,  
10 - int H1,  
11 - struct entite entite2,  
12 - int L2,  
13 - int H2);  
14 -  
15 -struct liste_entite* CheckCollisionListeListe (struct liste_entite* Liste1,  
16 - int L1,  
17 - int H1,  
18 - struct liste_entite* Liste2,  
19 - int L2,  
20 - int H2);  
21 -  
22 -void Tirer (struct entite joueur,  
23 - struct liste_entite** pl);  
24 -  
25 -void DeplacementTire(struct liste_entite** Liste);  
26 -  
27 -void action(struct entite* joueur,  
28 - char c,  
29 - struct liste_entite** tires);  
30 -  
31 -void MakeBombeDrop (struct liste_entite* enemies,  
32 - struct liste_entite** bombes);  
33 -  
34 -void DeplacementBombe(struct liste_entite** Liste) ;  
35 -  
36 -void NouveauDroppeurBombe (struct liste_entite** liste,  
37 - struct entite* entite);  
38 -  
39 -int SupprimerEntitesEnCollision (struct liste_entite** Liste1,  
40 - int L1,  
41 - int H1,  
42 - struct liste_entite** Liste2,  
43 - int L2,  
44 - int H2);  
Space Invaders/Envahisseurs/Graphique/src/ListeC/Liste.c deleted
@@ -1,80 +0,0 @@ @@ -1,80 +0,0 @@
1 -#include <stdio.h>  
2 -#include <stdlib.h>  
3 -#include <string.h>  
4 -  
5 -#include "Liste.h"  
6 -  
7 -//Crée une entité  
8 -struct entite creer_entite (int x,  
9 - int y,  
10 - int candrop)  
11 -{  
12 - struct entite e;  
13 -  
14 - e.posx = x;  
15 - e.posy = y;  
16 - e.dropbombe = candrop;  
17 -  
18 - return e;  
19 -}  
20 -  
21 -  
22 -//Ajout en tete une entité dans une liste  
23 -void ajout_tete (struct liste_entite** Liste,  
24 - struct entite x )  
25 -{  
26 - struct liste_entite *Listetmp=NULL;  
27 -  
28 - Listetmp = malloc(sizeof(struct liste_entite));  
29 - Listetmp->entite = x;  
30 - Listetmp->suivant = *Liste;  
31 -  
32 - *Liste = Listetmp;  
33 -}  
34 -  
35 -  
36 -//Supprime une entite d'une liste  
37 -void SupprimerEntite (struct liste_entite** Liste,  
38 - struct entite* entite)  
39 -{  
40 - struct liste_entite* courant = *Liste;  
41 - struct liste_entite* precedent = NULL;  
42 - //Ce pointeur precedent va garder en memoire l'entite precedente  
43 - //Initialisé à NULL car cela est utile dans le cas ou l'entite est la 1ere  
44 -  
45 - while (courant != NULL)  
46 - {  
47 - //Comparaison entre 2 entites  
48 - if (memcmp (&courant->entite,  
49 - entite,  
50 - sizeof(struct entite)) == 0)  
51 - {  
52 - //Si l'element est le premier  
53 - if (precedent == NULL)  
54 - {  
55 - *Liste = courant->suivant;  
56 - }  
57 -  
58 - else  
59 - {  
60 - precedent->suivant = courant->suivant;  
61 - }  
62 -  
63 - free(courant);  
64 - break;  
65 - }  
66 -  
67 - precedent = courant;  
68 - courant = courant->suivant;  
69 - }  
70 -}  
71 -  
72 -  
73 -//Desallouer une liste entiere  
74 -void DesallouerListe (struct liste_entite** Liste)  
75 -{  
76 - while(*Liste != NULL)  
77 - {  
78 - SupprimerEntite(Liste,&((*Liste)->entite));  
79 - }  
80 -}  
Space Invaders/Envahisseurs/Graphique/src/ListeC/Liste.h deleted
@@ -1,29 +0,0 @@ @@ -1,29 +0,0 @@
1 -//dropbombe concerne les entités enemies  
2 -//1 les enemies peuvent drop des bombes, 0 ils ne peuvent pas  
3 -//Les entites non concernées vallent ont un dropbombe = -1  
4 -struct entite  
5 -{  
6 - int posx;  
7 - int posy;  
8 - int dropbombe;  
9 -};  
10 -  
11 -  
12 -struct liste_entite  
13 -{  
14 - struct entite entite;  
15 - struct liste_entite *suivant;  
16 -};  
17 -  
18 -  
19 -struct entite creer_entite (int x,  
20 - int y,  
21 - int bombe);  
22 -  
23 -void ajout_tete (struct liste_entite** Liste,  
24 - struct entite x );  
25 -  
26 -void SupprimerEntite (struct liste_entite** Liste,  
27 - struct entite* entite);  
28 -  
29 -void DesallouerListe (struct liste_entite** Liste);  
Space Invaders/Envahisseurs/Graphique/src/Main/Makefile deleted
@@ -1,37 +0,0 @@ @@ -1,37 +0,0 @@
1 -CC=clang  
2 -TARGET=Jeu  
3 -CFLAGS=-g -W -Wall -Wextra  
4 -LDFLAGS=-I Graphique -l graph -L ../Graphique -l SDL -l SDL_ttf  
5 -  
6 -default: $(TARGET)  
7 -  
8 -Liste.o : ../ListeC/Liste.c ../ListeC/Liste.h  
9 - clang $(CFLAGS) -c ../ListeC/Liste.c  
10 -  
11 -Monstre.o : ../Monstre/Monstre.c ../Monstre/Monstre.h  
12 - clang $(CFLAGS) -c ../Monstre/Monstre.c  
13 -  
14 -Interactif.o : ../Interactif/Interactif.c ../Interactif/Interactif.h  
15 - clang $(CFLAGS) -c ../Interactif/Interactif.c  
16 -  
17 -init.o : init.c init.h  
18 - clang $(CFLAGS) -c init.c  
19 -  
20 -main.o : main.c  
21 - clang $(CFLAGS) -c main.c  
22 -  
23 -  
24 -$(TARGET): Liste.o main.o Monstre.o Interactif.o init.o  
25 - clang main.o Liste.o Monstre.o Interactif.o init.o -o $(TARGET) $(LDFLAGS)  
26 -  
27 -.PHONY: clean  
28 -clean:  
29 - rm -f *.o  
30 - rm -f $(TARGET)  
31 -  
32 -tidy : main.c ../ListeC/Liste.c ../Monstre/Monstre.c ../Interactif/Interactif.c init.c  
33 - $(CC)-tidy main.c ../ListeC/Liste.c ../Monstre/Monstre.c ../Interactif/Interactif.c init.c --checks="readability-*" -header-filter=.*  
34 -  
35 -format :  
36 - $(CC)-format -style='Microsoft' main.c ../ListeC/Liste.c ../Monstre/Monstre.c ../Interactif/Interactif.c init.c  
37 -  
Space Invaders/Envahisseurs/Graphique/src/Main/init.c deleted
@@ -1,244 +0,0 @@ @@ -1,244 +0,0 @@
1 -#include <stdio.h>  
2 -#include "../Graphique/libgraph.h"  
3 -#include "../ListeC/Liste.h"  
4 -#include "../Interactif/Interactif.h"  
5 -#include "init.h"  
6 -  
7 -#define TailleX 500  
8 -#define TailleY 500  
9 -#define Sol 475  
10 -#define ErreurHitbox 2  
11 -#define PositionX_1 (TailleX / 2)  
12 -#define PositionY_1 (TailleY / 2)  
13 -#define PositionY_2 (TailleY / 4)  
14 -  
15 -#define JoueurX (TailleX / 2)  
16 -#define JoueurY (9 * TailleY / 10)  
17 -  
18 -#define Nom "Space Invaders"  
19 -#define TaillePolice1 (TailleX / 10)  
20 -#define TaillePolice2 (TailleX / 20)  
21 -#define TailleChaineMax 30  
22 -  
23 -//Ces variables sont globales car utilisées dans plusieurs .c  
24 -//Toutes les hitbox sont initialisées 1 fois puis sont des constantes  
25 -struct entite joueur;  
26 -  
27 -static const char policeDefaut[]=  
28 -"/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf";  
29 -  
30 -int canon = 0;  
31 -int missile = 0;  
32 -int enemie1_1 = 0;  
33 -int enemie1_2 = 0;  
34 -int bouillie = 0;  
35 -int bombe = 0;  
36 -  
37 -int hitboxcanonL = 0;  
38 -int hitboxcanonH = 0;  
39 -int hitboxmissileL = 0;  
40 -int hitboxmissileH = 0;  
41 -int hitboxenemieL = 0;  
42 -int hitboxenemieH = 0;  
43 -int hitboxbouillieL = 0;  
44 -int hitboxbouillieH = 0;  
45 -int hitboxbombeL = 0;  
46 -int hitboxbombeH = 0;  
47 -  
48 -//Initialisation des variables globales pour le main  
49 -void initialiser()  
50 -{  
51 - canon = chargerLutin ("../../Lutins/invader_canon.bmp",  
52 - COULEUR_NOIR);  
53 - missile = chargerLutin ("../../Lutins/invader_missile.bmp",  
54 - COULEUR_NOIR);  
55 - enemie1_1 = chargerLutin ("../../Lutins/invader_monstre2_1.bmp",  
56 - COULEUR_NOIR);  
57 - enemie1_2 = chargerLutin ("../../Lutins/invader_monstre2_2.bmp",  
58 - COULEUR_NOIR);  
59 - bouillie = chargerLutin ("../../Lutins/invader_monstre_bouillie.bmp",  
60 - COULEUR_NOIR);  
61 - bombe = chargerLutin ("../../Lutins/invader_bombe.bmp",  
62 - COULEUR_NOIR);  
63 -  
64 - tailleLutin (canon,  
65 - &hitboxcanonL,  
66 - &hitboxcanonH);  
67 -  
68 - tailleLutin (missile,  
69 - &hitboxmissileL,  
70 - &hitboxmissileH);  
71 - //La taille des enemmies que j'utilise est la meme dans ces 2 variantes  
72 - tailleLutin (enemie1_1,  
73 - &hitboxenemieL,  
74 - &hitboxenemieH);  
75 -  
76 - tailleLutin (bouillie,  
77 - &hitboxbouillieL,  
78 - &hitboxbouillieH);  
79 -  
80 - tailleLutin (bombe,  
81 - &hitboxbombeL,  
82 - &hitboxbombeH);  
83 -  
84 -}  
85 -  
86 -//Initialisation des coordonnées du joueur pour le main  
87 -void initialiserjoueur()  
88 -{  
89 - joueur.posx = JoueurX;  
90 - joueur.posy = JoueurY;  
91 - joueur.dropbombe = -1;  
92 -}  
93 -  
94 -//Page de démarage du jeu  
95 -char pagedemarrage()  
96 -{  
97 - char input = '\0';  
98 - evenement even = 0;  
99 - int Largeur = 0;  
100 - int Hauteur = 0;  
101 - char jouer[] = "Appuyer sur j pour Jouer";  
102 - char quitter[] = "Appuyer ailleurs pour Quitter";  
103 -  
104 - choisirPolice (policeDefaut, TaillePolice2);  
105 - int LutinJouer = lutinTexte (jouer, COULEUR_BLANC);  
106 - int LutinQuitter = lutinTexte (quitter, COULEUR_BLANC);  
107 -  
108 - choisirPolice (policeDefaut, TaillePolice1);  
109 - int LutinBienvenue = lutinTexte (Nom, COULEUR_VERT);  
110 -  
111 - rectanglePlein (0,  
112 - 0,  
113 - TailleX,  
114 - TailleY,  
115 - COULEUR_NOIR);  
116 -  
117 - tailleLutin (LutinBienvenue,  
118 - &Largeur,  
119 - &Hauteur);  
120 - afficherLutin (LutinBienvenue,  
121 - PositionX_1 - Largeur / 2,  
122 - PositionY_2 + Hauteur / 2);  
123 -  
124 - tailleLutin (LutinJouer,  
125 - &Largeur,  
126 - &Hauteur);  
127 - afficherLutin (LutinJouer,  
128 - PositionX_1 - Largeur / 2,  
129 - PositionY_1 - Hauteur / 2);  
130 -  
131 - tailleLutin (LutinQuitter,  
132 - &Largeur,  
133 - &Hauteur);  
134 - afficherLutin (LutinQuitter,  
135 - PositionX_1 - Largeur / 2,  
136 - PositionY_1 + Hauteur / 2);  
137 -  
138 - majSurface();  
139 - attendreEvenement ();  
140 -  
141 - lireEvenement (&even,  
142 - &input,  
143 - NULL);  
144 - while (input == '\0')  
145 - {  
146 - lireEvenement (&even,  
147 - &input,  
148 - NULL);  
149 - }  
150 - return input;  
151 -}  
152 -  
153 -//Page en cas de mort dans le jeu  
154 -void pagemort (int nbr_vie)  
155 -{  
156 - int Largeur = 0;  
157 - int Hauteur = 0;  
158 - char mort[] = "Vous etes mort";  
159 - char vie[TailleChaineMax] = "\0";  
160 - sprintf (vie,  
161 - "Nombre de vies restantes : %d",  
162 - nbr_vie);  
163 - /*  
164 - sprintf crée un warning mais celui-ci ne peut pas crée d'erreur car  
165 - TailleChaineMax ne pourra pas excéder 30 si le nombre de vie reste "normal"  
166 - sprintf_s ne fonctionne pas pour mon programme (invalid in C99)  
167 - */  
168 -  
169 - choisirPolice (policeDefaut, TaillePolice1);  
170 - int LutinMort = lutinTexte(mort, COULEUR_ROUGE);  
171 -  
172 - choisirPolice (policeDefaut, TaillePolice2);  
173 - int LutinVie = lutinTexte(vie, COULEUR_BLANC);  
174 -  
175 - rectanglePlein (0,  
176 - 0,  
177 - TailleX,  
178 - TailleY,  
179 - COULEUR_NOIR);  
180 -  
181 - tailleLutin (LutinMort,  
182 - &Largeur,  
183 - &Hauteur);  
184 - afficherLutin (LutinMort,  
185 - PositionX_1 - Largeur / 2,  
186 - PositionY_2 + Hauteur / 2);  
187 -  
188 - tailleLutin (LutinVie,  
189 - &Largeur,  
190 - &Hauteur);  
191 - afficherLutin (LutinVie,  
192 - PositionX_1 - Largeur / 2,  
193 - PositionY_1 - Hauteur / 2);  
194 -}  
195 -  
196 -//Page de GameOver du jeu  
197 -void pageGameOver()  
198 -{  
199 - int Largeur = 0;  
200 - int Hauteur = 0;  
201 - char fin[] = "GAME OVER";  
202 -  
203 - choisirPolice(policeDefaut, TaillePolice1);  
204 - int LutinFin = lutinTexte(fin, COULEUR_ROUGE);  
205 -  
206 - rectanglePlein (0,  
207 - 0,  
208 - TailleX,  
209 - TailleY,  
210 - COULEUR_NOIR);  
211 -  
212 - tailleLutin (LutinFin,  
213 - &Largeur,  
214 - &Hauteur);  
215 - afficherLutin (LutinFin,  
216 - PositionX_1 - Largeur / 2,  
217 - PositionY_1 - Hauteur / 2);  
218 -  
219 -}  
220 -  
221 -//Page de Victoire du jeu  
222 -void pageVictoire()  
223 -{  
224 - int Largeur = 0;  
225 - int Hauteur = 0;  
226 - char fin[] = "VICTOIRE";  
227 -  
228 - choisirPolice(policeDefaut, TaillePolice1);  
229 - int LutinFin = lutinTexte(fin, COULEUR_VERT);  
230 -  
231 - rectanglePlein (0,  
232 - 0,  
233 - TailleX,  
234 - TailleY,  
235 - COULEUR_NOIR);  
236 -  
237 - tailleLutin (LutinFin,  
238 - &Largeur,  
239 - &Hauteur);  
240 - afficherLutin (LutinFin,  
241 - PositionX_1 - Largeur / 2,  
242 - PositionY_1 - Hauteur / 2);  
243 -  
244 -}  
Space Invaders/Envahisseurs/Graphique/src/Main/init.h deleted
@@ -1,28 +0,0 @@ @@ -1,28 +0,0 @@
1 -extern int canon;  
2 -extern int missile;  
3 -extern int enemie1_1;  
4 -extern int enemie1_2;  
5 -extern int bouillie;  
6 -extern int bombe;  
7 -  
8 -extern struct entite joueur;  
9 -extern char Nom[];  
10 -extern char input;  
11 -  
12 -extern int hitboxcanonL;  
13 -extern int hitboxcanonH;  
14 -extern int hitboxmissileL;  
15 -extern int hitboxmissileH;  
16 -extern int hitboxenemieL;  
17 -extern int hitboxenemieH;  
18 -extern int hitboxbouillieL;  
19 -extern int hitboxbouillieH;  
20 -extern int hitboxbombeL;  
21 -extern int hitboxbombeH;  
22 -  
23 -void initialiser();  
24 -void initialiserjoueur();  
25 -char pagedemarrage();  
26 -void pagemort(int nbr_vie);  
27 -void pageGameOver();  
28 -void pageVictoire();  
Space Invaders/Envahisseurs/Graphique/src/Main/main.c deleted
@@ -1,267 +0,0 @@ @@ -1,267 +0,0 @@
1 -#include <unistd.h>  
2 -#include <SDL/SDL.h>  
3 -#include "../Graphique/libgraph.h"  
4 -#include "../ListeC/Liste.h"  
5 -#include "../Monstre/Monstre.h"  
6 -#include "../Interactif/Interactif.h"  
7 -#include "init.h"  
8 -  
9 -#define TailleX 500  
10 -#define TailleY 500  
11 -#define Sol 475  
12 -#define EpaisseurSol 2  
13 -#define ErreurHitbox 2  
14 -  
15 -#define Nom "Space Invader"  
16 -#define NombreEnemieParLigne 8  
17 -#define NombreLigneEnemies 3  
18 -#define NombreVie 3  
19 -  
20 -#define BombeRandomFixe 50  
21 -#define BombeRandomAlea 30  
22 -  
23 -//Pour augmenter les deplacements des enemies, vous pouvez:  
24 -//Augmenter VitesseDeplacementEnemie  
25 -//Tout les VitesseDeplacementEnemie tours de boucle les enemies se déplace  
26 -#define VitesseDeplacementEnemie 2  
27 -// Ou augmenter le PasEnemie (Ecart entre la position n et n+1)  
28 -#define PasEnemie 5  
29 -#define AffichageImageEnemie 8  
30 -  
31 -#define Delai0_2s 200  
32 -#define Delai0_5s 500  
33 -#define Delai2s 2000  
34 -  
35 -#define VitesseTourdeBoucle 20  
36 -  
37 -int main()  
38 -{  
39 - creerSurface(TailleX,TailleY,Nom);  
40 -  
41 - initialiser();  
42 - initialiserjoueur();  
43 -  
44 - struct liste_entite* ListeEnemies = NULL;  
45 - struct liste_entite* ListeTires = NULL;  
46 - struct liste_entite* ListeBombes = NULL;  
47 -  
48 - //joueur est dans une liste afin d'utiliser des fonctions deja crée  
49 - struct liste_entite* Ljoueur = NULL;  
50 - ajout_tete(&Ljoueur,joueur);  
51 -  
52 -  
53 - LigneEnemie(&ListeEnemies,  
54 - NombreEnemieParLigne,  
55 - NombreLigneEnemies);  
56 - int SensVague = 1;  
57 -  
58 - char input = '\0';  
59 - evenement even = 0;  
60 -  
61 - int TourdeBoucle = 0;  
62 -  
63 - int TimeAlea = 0;  
64 - int CheckAlea = 0;  
65 -  
66 - int mort = 0;  
67 - int nbr_vie = NombreVie;  
68 - int QuelMonstre = 0;  
69 -  
70 - int coeur = chargerLutin ("../../Lutins/Coeur.bmp",  
71 - COULEUR_NOIR);  
72 - int hitboxcoeurL = 0;  
73 - int hitboxcoeurH = 0;  
74 - tailleLutin (coeur,  
75 - &hitboxcoeurL,  
76 - &hitboxcoeurH);  
77 -  
78 - if ( pagedemarrage() != 'j')  
79 - {  
80 - return 0;  
81 - }  
82 - SDL_Delay(Delai0_5s);  
83 -  
84 - //Bouble principale  
85 - while(input!='m')  
86 - {  
87 - //Si le joueur est mort  
88 - if (mort == 1)  
89 - {  
90 - nbr_vie-=1;  
91 - //Si il lui reste des vies  
92 - if (nbr_vie > 0)  
93 - {  
94 - pagemort(nbr_vie);  
95 - majSurface();  
96 - SDL_Delay(Delai2s);  
97 - mort = 0;  
98 - }  
99 - //Si il n'a plus de vie  
100 - else  
101 - {  
102 - pageGameOver();  
103 - majSurface();  
104 - SDL_Delay(Delai2s);  
105 - return 0;  
106 - }  
107 - //On ajoute de nouveau le joueur précedement supprimé à sa liste  
108 - ajout_tete(&Ljoueur,joueur);  
109 - //Desallocation dynamique des listes  
110 - DesallouerListe(&ListeTires);  
111 - DesallouerListe(&ListeBombes);  
112 - }  
113 -  
114 - //Affichage Rectangle Noir sur toute la page  
115 - rectanglePlein(0,  
116 - 0,  
117 - TailleX,  
118 - TailleY,  
119 - COULEUR_NOIR);  
120 -  
121 - //Affichage des coeurs de vie  
122 - for (int i = 1 ; i <= nbr_vie; i++)  
123 - {  
124 - afficherLutin(coeur,  
125 - TailleX - i * hitboxcoeurL,  
126 - Sol);  
127 - }  
128 -  
129 - //Affichage du Sol  
130 - rectanglePlein(0,  
131 - Sol,  
132 - TailleX,  
133 - EpaisseurSol,  
134 - COULEUR_VERT);  
135 -  
136 - //Affichage du joueur  
137 - afficherLutin(canon,  
138 - Ljoueur->entite.posx - hitboxcanonL/2 + ErreurHitbox,  
139 - Ljoueur->entite.posy);  
140 -  
141 - //Affichage des ListeEnemies  
142 - if (QuelMonstre > 2 * AffichageImageEnemie)  
143 - {  
144 - QuelMonstre = 0;  
145 - }  
146 - if (QuelMonstre <= AffichageImageEnemie)  
147 - {  
148 - AfficherEnemie (ListeEnemies,  
149 - enemie1_1,  
150 - hitboxenemieL,  
151 - hitboxenemieH);  
152 - QuelMonstre += 1;  
153 - }  
154 - else  
155 - {  
156 - AfficherEnemie (ListeEnemies,  
157 - enemie1_2,  
158 - hitboxenemieL,  
159 - hitboxenemieH);  
160 - QuelMonstre += 1;  
161 - }  
162 - /*  
163 - Systeme pour faire drop une bombe dans un temps aléatoire  
164 - Mise en place d'un timer  
165 - TimeAlea représente le nombre de tour de boucle à éffectuer  
166 - */  
167 - if (TimeAlea == 0)  
168 - {  
169 - //50 tour de boucle minimum + une valeur de 0 à 31  
170 - TimeAlea = rand() % BombeRandomAlea + BombeRandomFixe;  
171 - //Il y a un warning car rand() à une valeur limite  
172 - }  
173 - /*  
174 - CheckAlea est incrémenté de 1 à chaque tour de boucle  
175 - Lorsque celui ci vaut TimeAlea on peut drop une bombe  
176 - On reset à 0 le Timer et le Check aprés avoir Drop une bombe  
177 - */  
178 - if (CheckAlea == TimeAlea)  
179 - {  
180 - MakeBombeDrop(ListeEnemies,  
181 - &ListeBombes);  
182 - TimeAlea=0;  
183 - CheckAlea=0;  
184 - }  
185 -  
186 - //Gestion des evenements clavier  
187 - //On ne peut appuyer que sur une seule touche à la fois  
188 - lireEvenement (&even,  
189 - &input,  
190 - NULL);  
191 - if (even == toucheBas)  
192 - {  
193 - action(&Ljoueur->entite,  
194 - input,  
195 - &ListeTires);  
196 - }  
197 -  
198 - //Deplacement des enemies tout les X tours de boucle  
199 - if (TourdeBoucle == VitesseDeplacementEnemie)  
200 - {  
201 - DeplacementEnemie(ListeEnemies,  
202 - &SensVague,  
203 - PasEnemie);  
204 - TourdeBoucle = 0;  
205 - }  
206 -  
207 - //Deplacement des Tires et Bombes  
208 - DeplacementTire(&ListeTires);  
209 - DeplacementBombe(&ListeBombes);  
210 -  
211 - //Supression si collision des Tires et Enemies  
212 - SupprimerEntitesEnCollision(&ListeTires,  
213 - hitboxmissileL,  
214 - hitboxmissileH,  
215 - &ListeEnemies,  
216 - hitboxenemieL,  
217 - hitboxenemieH);  
218 -  
219 - //Supression si collision des Bombes et Joueur  
220 - if (SupprimerEntitesEnCollision(&ListeBombes,  
221 - hitboxbombeL,  
222 - hitboxbombeH,  
223 - &Ljoueur,  
224 - hitboxcanonL,  
225 - hitboxcanonH) == 1)  
226 - {  
227 - mort = 1;  
228 - majSurface();  
229 - SDL_Delay(Delai0_2s);  
230 - }  
231 -  
232 - //Supression si collision des Enemies et Joueur  
233 - if (SupprimerEntitesEnCollision(&ListeEnemies,  
234 - hitboxenemieL,  
235 - hitboxenemieH,  
236 - &Ljoueur,  
237 - hitboxcanonL,  
238 - hitboxcanonH) == 1)  
239 - {  
240 - pageGameOver();  
241 - majSurface();  
242 - SDL_Delay(Delai2s);  
243 - return 0;  
244 - }  
245 -  
246 - //Si il n'y a plus d'enemies, c'est une victoire !!!  
247 - if (ListeEnemies == NULL)  
248 - {  
249 - majSurface();  
250 - SDL_Delay(Delai0_2s);  
251 - pageVictoire();  
252 - majSurface();  
253 - SDL_Delay(Delai2s);  
254 - return 0;  
255 - }  
256 -  
257 -  
258 - majSurface();  
259 -  
260 - TourdeBoucle += 1;  
261 - CheckAlea += 1;  
262 -  
263 - SDL_Delay(VitesseTourdeBoucle);  
264 -  
265 - }  
266 - return 0;  
267 -}  
Space Invaders/Envahisseurs/Graphique/src/Monstre/Monstre.c deleted
@@ -1,103 +0,0 @@ @@ -1,103 +0,0 @@
1 -#include <stdlib.h>  
2 -#include "../Graphique/libgraph.h"  
3 -#include "../ListeC/Liste.h"  
4 -#include "Monstre.h"  
5 -  
6 -#define TailleX 500  
7 -#define TailleY 500  
8 -#define ErreurHitbox 2  
9 -  
10 -#define Taille1_10 (TailleX / 10)  
11 -#define Taille9_10 (9 * TailleX / 10)  
12 -#define TailleJump 30  
13 -  
14 -//Sens = 1 -> Va vers la droite  
15 -//Sens = 0 -> Va vers la gauche  
16 -void DeplacementEnemie(struct liste_entite* Liste,  
17 - int* SensDeplacement,  
18 - int Pas)  
19 -{  
20 - //ind sert à savoir si je dois changer de sens ou non  
21 - int ind = 0;  
22 - struct liste_entite* pListe = Liste;  
23 -  
24 - while (pListe != NULL)  
25 - {  
26 - pListe->entite.posx += (*SensDeplacement == 1) ? Pas : -Pas;  
27 - if (pListe->entite.posx >= Taille9_10)  
28 - {  
29 - ind = 1;  
30 - }  
31 -  
32 - else if (pListe->entite.posx <= Taille1_10)  
33 - {  
34 - ind = 2;  
35 - }  
36 -  
37 - pListe = pListe->suivant;  
38 - }  
39 -  
40 - if (ind != 0)  
41 - {  
42 - *SensDeplacement = (ind == 1) ? 0 : 1;  
43 - struct liste_entite* p2Liste = Liste;  
44 -  
45 - while (p2Liste != NULL)  
46 - {  
47 - p2Liste->entite.posy += TailleJump;  
48 - p2Liste = p2Liste->suivant;  
49 - }  
50 - }  
51 -}  
52 -  
53 -//Création de lignes d'entités enemies dans la liste enemies  
54 -void LigneEnemie (struct liste_entite** ListeEnemie,  
55 - int nbr_enemies,  
56 - int nbr_rangee)  
57 -{  
58 -  
59 - for (int j = 1; j <= nbr_rangee; j++)  
60 - {  
61 - int compteurY = j * Taille1_10;  
62 - int compteurX = TailleX / (nbr_enemies+1);  
63 -  
64 - for (int i = 0; i < nbr_enemies; i++)  
65 - {  
66 - if (j == nbr_rangee)  
67 - {  
68 - ajout_tete(ListeEnemie,  
69 - creer_entite(compteurX,  
70 - compteurY,  
71 - 1));  
72 - compteurX += 2 * TailleX / (3 * nbr_enemies);  
73 - }  
74 -  
75 - else  
76 - {  
77 - ajout_tete(ListeEnemie,  
78 - creer_entite(compteurX,  
79 - compteurY,  
80 - 0));  
81 - compteurX += 2 * TailleX / (3 * nbr_enemies);  
82 - }  
83 - }  
84 - }  
85 -}  
86 -  
87 -//Affichage des enemies centrés dans leur hitbox  
88 -void AfficherEnemie (struct liste_entite* Liste,  
89 - int lutin,  
90 - int Largeur,  
91 - int Hauteur)  
92 -{  
93 -  
94 - struct liste_entite* pListe = Liste;  
95 -  
96 - while (pListe != NULL)  
97 - {  
98 - afficherLutin(lutin,  
99 - pListe->entite.posx - Largeur / 2 + ErreurHitbox,  
100 - pListe->entite.posy - Hauteur / 2 + ErreurHitbox);  
101 - pListe=pListe->suivant;  
102 - }  
103 -}  
Space Invaders/Envahisseurs/Graphique/src/Monstre/Monstre.h deleted
@@ -1,12 +0,0 @@ @@ -1,12 +0,0 @@
1 -void DeplacementEnemie(struct liste_entite* Liste,  
2 - int* SensDeplacement,  
3 - int Pas);  
4 -  
5 -void LigneEnemie (struct liste_entite** ListeEnemie,  
6 - int nbr_enemies,  
7 - int nbr_rangee);  
8 -  
9 -void AfficherEnemie (struct liste_entite* Liste,  
10 - int lutin,  
11 - int Largeur,  
12 - int Hauteur);