Commit c1ee1f58c1c77285c4047890881dfddd0f7a0315
1 parent
1e8c0804
Suppresion nuisible
Showing
14 changed files
with
0 additions
and
1352 deletions
Show diff stats
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 |
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 | -} |
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); |
Interactif/Interactif.c deleted
@@ -1,273 +0,0 @@ | @@ -1,273 +0,0 @@ | ||
1 | -#include <stdio.h> | ||
2 | -#include <stdlib.h> | ||
3 | -#include <string.h> | ||
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 | - | ||
14 | - | ||
15 | -int CheckCollisionEntiteEntite(struct entite entite1, int L1, int H1, struct entite entite2, int L2, int H2) | ||
16 | -{ | ||
17 | - //CheckX | ||
18 | - int gauche1 = entite1.posx - L1/2 + ErreurHitbox; | ||
19 | - int droite1 = entite1.posx + L1/2 - ErreurHitbox; | ||
20 | - int gauche2 = entite2.posx - L2/2 + ErreurHitbox; | ||
21 | - int droite2 = entite2.posx + L2/2 - ErreurHitbox; | ||
22 | - int CheckX = (gauche1 >= gauche2 && gauche1 <= droite2) || (droite1 >= gauche2 && droite1 <= droite2); | ||
23 | - | ||
24 | - //CheckY | ||
25 | - int haut1 = entite1.posy - H1/2 + ErreurHitbox; | ||
26 | - int bas1 = entite1.posy + H1/2 - ErreurHitbox; | ||
27 | - int haut2 = entite2.posy - H2/2 + ErreurHitbox; | ||
28 | - int bas2 = entite2.posy + H2/2 - ErreurHitbox; | ||
29 | - int CheckY = (haut1 <= bas2 && haut1 >= haut2) || (bas1 <= bas2 && bas1 >= haut2); | ||
30 | - | ||
31 | - return CheckX && CheckY; | ||
32 | -} | ||
33 | - | ||
34 | - | ||
35 | -struct entite* CheckCollisionListeEntite(struct liste_entite *Liste1,int L1,int H1,struct entite entite2, int L2, int H2) | ||
36 | -{ | ||
37 | - struct liste_entite *pL1=Liste1; | ||
38 | - while (pL1 != NULL) | ||
39 | - { | ||
40 | - if(CheckCollisionEntiteEntite(pL1->entite,L1,H1,entite2,L2,H2) == 1) | ||
41 | - { | ||
42 | - return &pL1->entite; | ||
43 | - } | ||
44 | - pL1=pL1->suivant; | ||
45 | - } | ||
46 | - return NULL; | ||
47 | -} | ||
48 | - | ||
49 | - | ||
50 | - | ||
51 | - | ||
52 | -struct liste_entite* CheckCollisionListeListe(struct liste_entite *Liste1,int L1,int H1,struct liste_entite *Liste2,int L2, int H2) | ||
53 | -{ | ||
54 | - struct liste_entite *pL2=Liste2; | ||
55 | - while (pL2 != NULL) | ||
56 | - { | ||
57 | - struct entite* collision = CheckCollisionListeEntite(Liste1,L1,H1,pL2->entite,L2,H2); | ||
58 | - if (collision != NULL) | ||
59 | - { | ||
60 | - // Crรฉation des nลuds pour les deux entitรฉs | ||
61 | - struct liste_entite* Entite1 = malloc(sizeof(struct liste_entite)); | ||
62 | - struct liste_entite* Entite2 = malloc(sizeof(struct liste_entite)); | ||
63 | - | ||
64 | - // Remplissage des nลuds avec les entitรฉs correspondantes | ||
65 | - Entite1->entite = *collision; | ||
66 | - Entite2->entite = pL2->entite; | ||
67 | - | ||
68 | - // Relier les nลuds entre eux | ||
69 | - Entite1->suivant = Entite2; | ||
70 | - Entite2->suivant = NULL; | ||
71 | - | ||
72 | - return Entite1; | ||
73 | - } | ||
74 | - else | ||
75 | - pL2=pL2->suivant; | ||
76 | - } | ||
77 | - return NULL; | ||
78 | -} | ||
79 | - | ||
80 | - | ||
81 | -void NouveauDroppeurBombe(struct liste_entite** liste, struct entite* ent) | ||
82 | -{ | ||
83 | - int posx = ent->posx; | ||
84 | - int posy = ent->posy; | ||
85 | - struct liste_entite* pListe = *liste; | ||
86 | - struct entite* ent_bas = NULL; | ||
87 | - | ||
88 | - // On parcourt la liste et on cherche l'entitรฉ la plus basse ayant la mรชme position x | ||
89 | - while (pListe != NULL) | ||
90 | - { | ||
91 | - if (pListe->entite.posy != posy) | ||
92 | - { | ||
93 | - if (pListe->entite.posx == posx && ent_bas == NULL) | ||
94 | - { | ||
95 | - ent_bas = &pListe->entite; | ||
96 | - } | ||
97 | - else if (pListe->entite.posx == posx && pListe->entite.posy > ent_bas->posy) | ||
98 | - { | ||
99 | - ent_bas = &pListe->entite; | ||
100 | - } | ||
101 | - } | ||
102 | - pListe = pListe->suivant; | ||
103 | - } | ||
104 | - | ||
105 | - // Si aucune entitรฉ n'est situรฉe plus bas que l'entitรฉ en question, on ne peut pas dropper la bombe | ||
106 | - if (ent_bas == NULL) | ||
107 | - { | ||
108 | - return; | ||
109 | - } | ||
110 | - | ||
111 | - ent_bas->dropbombe = 1; | ||
112 | -} | ||
113 | - | ||
114 | - | ||
115 | - | ||
116 | - | ||
117 | - | ||
118 | -int SupprimerEntitesEnCollision(struct liste_entite** Liste1, int L1, int H1, struct liste_entite** Liste2, int L2, int H2) | ||
119 | -{ | ||
120 | - struct liste_entite* collision = CheckCollisionListeListe(*Liste1, L1, H1, *Liste2, L2, H2); | ||
121 | - | ||
122 | - if (collision != NULL) { | ||
123 | - // Rรฉcupรฉration des entitรฉs impliquรฉes | ||
124 | - struct entite* entite1 = &collision->entite; | ||
125 | - struct entite* entite2 = &collision->suivant->entite; | ||
126 | - | ||
127 | - if (entite1->dropbombe == 1) | ||
128 | - { | ||
129 | - NouveauDroppeurBombe(Liste1,entite1); | ||
130 | - } | ||
131 | - | ||
132 | - if (entite2->dropbombe == 1) | ||
133 | - { | ||
134 | - NouveauDroppeurBombe(Liste2,entite2); | ||
135 | - } | ||
136 | - // Suppression de l'entitรฉ 1 de la liste 1 | ||
137 | - SupprimerEntite(Liste1, entite1); | ||
138 | - | ||
139 | - // Suppression de l'entitรฉ 2 de la liste 2 | ||
140 | - SupprimerEntite(Liste2, entite2); | ||
141 | - | ||
142 | - afficherLutin(bouillie, entite2->posx - hitboxbouillieL/2 + ErreurHitbox, entite2->posy - hitboxbouillieH/2 + ErreurHitbox); | ||
143 | - | ||
144 | - return 1; | ||
145 | - } | ||
146 | - return 0; | ||
147 | -} | ||
148 | - | ||
149 | - | ||
150 | - | ||
151 | - | ||
152 | - | ||
153 | -void Tirer(struct entite joueur, struct liste_entite **pl) | ||
154 | -{ | ||
155 | - if (*pl==NULL) | ||
156 | - { | ||
157 | - ajout_tete(pl,creer_entite(joueur.posx,joueur.posy,-1)); | ||
158 | - } | ||
159 | -} | ||
160 | - | ||
161 | - | ||
162 | -void DeplacementTire(int tire, struct liste_entite** l) | ||
163 | -{ | ||
164 | - struct entite* ml = &(*l)->entite; | ||
165 | - if (ml != NULL) | ||
166 | - { | ||
167 | - if (ml->posy <= 0) | ||
168 | - { | ||
169 | - afficherLutin(bouillie, ml->posx - hitboxbouillieL/2 + ErreurHitbox, ml->posy); | ||
170 | - SupprimerEntite(l, ml); | ||
171 | - } | ||
172 | - else | ||
173 | - { | ||
174 | - ml->posy -= 5; | ||
175 | - //Je divise ErreurHitbox par 2 car l'erreur du missile est plus petite que pour les autres images | ||
176 | - afficherLutin(tire, ml->posx - hitboxmissileL/2 + ErreurHitbox/2, ml->posy - hitboxmissileH/2 + ErreurHitbox/2); | ||
177 | - } | ||
178 | - } | ||
179 | -} | ||
180 | - | ||
181 | - | ||
182 | - | ||
183 | - | ||
184 | -char touche() | ||
185 | -{ | ||
186 | - char touche; | ||
187 | - evenement even; | ||
188 | - lireEvenement (&even,&touche,NULL); | ||
189 | - return touche; | ||
190 | -} | ||
191 | - | ||
192 | - | ||
193 | - | ||
194 | -void action(struct entite *joueur, char c, struct liste_entite **tires) | ||
195 | -{ | ||
196 | - switch (c) | ||
197 | - { | ||
198 | - case 'd': | ||
199 | - if (joueur->posx <= 9*TailleX/10) | ||
200 | - { | ||
201 | - joueur->posx += 3; | ||
202 | - } | ||
203 | - break; | ||
204 | - case 'q': | ||
205 | - if (joueur->posx >= TailleX/10) | ||
206 | - { | ||
207 | - joueur->posx -= 3; | ||
208 | - } | ||
209 | - break; | ||
210 | - case 't': | ||
211 | - Tirer(*joueur, tires); | ||
212 | - break; | ||
213 | - default: | ||
214 | - break; | ||
215 | - } | ||
216 | -} | ||
217 | - | ||
218 | - | ||
219 | - | ||
220 | -void MakeBombeDroppable(struct liste_entite* enemies, struct liste_entite** bombes) | ||
221 | -{ | ||
222 | - struct liste_entite* pL = enemies; | ||
223 | - struct liste_entite* Dropable = NULL; | ||
224 | - int taille = 0; | ||
225 | - while (pL != NULL) | ||
226 | - { | ||
227 | - if (pL->entite.dropbombe == 1) | ||
228 | - { | ||
229 | - ajout_tete(&Dropable,pL->entite); | ||
230 | - taille += 1; | ||
231 | - } | ||
232 | - pL=pL->suivant; | ||
233 | - } | ||
234 | - | ||
235 | - if(Dropable == NULL) | ||
236 | - { | ||
237 | - return; | ||
238 | - } | ||
239 | - | ||
240 | - int randomIndex = rand() % taille-1; | ||
241 | - struct liste_entite* pLDropable = Dropable; | ||
242 | - | ||
243 | - for (int i = 0; i <= randomIndex; i++) | ||
244 | - { | ||
245 | - pLDropable = pLDropable->suivant; | ||
246 | - } | ||
247 | - ajout_tete(bombes,creer_entite(pLDropable->entite.posx,pLDropable->entite.posy,-1)); | ||
248 | -} | ||
249 | - | ||
250 | - | ||
251 | -void DeplacementBombe(int bombe, struct liste_entite** l) | ||
252 | -{ | ||
253 | - struct liste_entite* ml = *l; | ||
254 | - struct liste_entite* precedent = NULL; | ||
255 | - | ||
256 | - while (ml != NULL) | ||
257 | - { | ||
258 | - if (ml->entite.posy + hitboxbombeH/2 - ErreurHitbox >= Sol) | ||
259 | - { | ||
260 | - struct entite* a_supprimer = &ml->entite; | ||
261 | - ml = ml->suivant; | ||
262 | - SupprimerEntite(l, a_supprimer); | ||
263 | - } | ||
264 | - else | ||
265 | - { | ||
266 | - ml->entite.posy += 2; | ||
267 | - afficherLutin(bombe, ml->entite.posx - hitboxbombeL/2 + ErreurHitbox, ml->entite.posy - hitboxbombeH/2 + ErreurHitbox); | ||
268 | - precedent = ml; | ||
269 | - ml = ml->suivant; | ||
270 | - } | ||
271 | - } | ||
272 | -} | ||
273 | - |
Interactif/Interactif.h deleted
@@ -1,25 +0,0 @@ | @@ -1,25 +0,0 @@ | ||
1 | -#include <stdio.h> | ||
2 | -#include <stdlib.h> | ||
3 | - | ||
4 | - | ||
5 | -int CheckCollisionEntiteEntite(struct entite,int,int,struct entite,int,int); | ||
6 | - | ||
7 | -struct entite* CheckCollisionListeEntite(struct liste_entite*,int,int,struct entite,int,int); | ||
8 | - | ||
9 | -void NouveauDroppeurBombe(struct liste_entite**,struct entite*); | ||
10 | - | ||
11 | -struct liste_entite* CheckCollisionListeListe(struct liste_entite*,int,int,struct liste_entite*,int,int); | ||
12 | - | ||
13 | -void Tirer(struct entite, struct liste_entite**); | ||
14 | - | ||
15 | -void DeplacementTire(int,struct liste_entite**); | ||
16 | - | ||
17 | -int SupprimerEntitesEnCollision(struct liste_entite**,int,int,struct liste_entite**,int,int); | ||
18 | - | ||
19 | -char touche(); | ||
20 | - | ||
21 | -void action(struct entite*,char,struct liste_entite**); | ||
22 | - | ||
23 | -void MakeBombeDroppable(struct liste_entite*,struct liste_entite**); | ||
24 | - | ||
25 | -void DeplacementBombe(int,struct liste_entite**); |
ListeC/Liste.c deleted
@@ -1,69 +0,0 @@ | @@ -1,69 +0,0 @@ | ||
1 | -#include <stdio.h> | ||
2 | -#include <stdlib.h> | ||
3 | -#include <string.h> | ||
4 | - | ||
5 | -#include "Liste.h" | ||
6 | - | ||
7 | - | ||
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 | - | ||
23 | -void ajout_tete (struct liste_entite** Liste, | ||
24 | - struct entite x ) | ||
25 | -{ | ||
26 | - struct liste_entite *Listetmp; | ||
27 | - | ||
28 | - Listetmp = malloc(sizeof(struct liste_entite)); | ||
29 | - Listetmp->entite = x; | ||
30 | - Listetmp->suivant = *Liste; | ||
31 | - | ||
32 | - *Liste = Listetmp; | ||
33 | -} | ||
34 | - | ||
35 | - | ||
36 | - | ||
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 | - |
ListeC/Liste.h deleted
@@ -1,27 +0,0 @@ | @@ -1,27 +0,0 @@ | ||
1 | -#include <stdio.h> | ||
2 | -#include <stdlib.h> | ||
3 | - | ||
4 | -//dropbombe concerne les entitรฉs enemies | ||
5 | -//1 les enemies peuvent drop des bombes, 0 ils ne peuvent pas | ||
6 | -//Celles non concernรฉes vallent -1 | ||
7 | -struct entite | ||
8 | -{ | ||
9 | - int posx; | ||
10 | - int posy; | ||
11 | - int dropbombe; | ||
12 | -}; | ||
13 | - | ||
14 | - | ||
15 | -struct liste_entite | ||
16 | -{ | ||
17 | - struct entite entite; | ||
18 | - struct liste_entite *suivant; | ||
19 | -}; | ||
20 | - | ||
21 | - | ||
22 | -void ajout_tete(struct liste_entite**, struct entite); | ||
23 | - | ||
24 | -struct entite creer_entite(int,int,int); | ||
25 | - | ||
26 | -void SupprimerEntite(struct liste_entite**,struct entite*); | ||
27 | - |
Main/.nfs00000000073b016100000009 deleted
No preview for this file type
Main/Makefile deleted
@@ -1,30 +0,0 @@ | @@ -1,30 +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) |
Main/init.c deleted
@@ -1,218 +0,0 @@ | @@ -1,218 +0,0 @@ | ||
1 | -#include <stdio.h> | ||
2 | -#include <stdlib.h> | ||
3 | - | ||
4 | -#include "../Graphique/libgraph.h" | ||
5 | -#include "../ListeC/Liste.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 ErreurHitbox 2 | ||
13 | -#define JoueurX TailleX/2 | ||
14 | -#define JoueurY 9*TailleY/10 | ||
15 | - | ||
16 | -struct entite joueur; | ||
17 | - | ||
18 | -int canon = 0; | ||
19 | -int missile = 0; | ||
20 | -int sbire = 0; | ||
21 | -int bouillie = 0; | ||
22 | -int bombe = 0; | ||
23 | - | ||
24 | -int hitboxcanonL = 0; | ||
25 | -int hitboxcanonH = 0; | ||
26 | -int hitboxmissileL = 0; | ||
27 | -int hitboxmissileH = 0; | ||
28 | -int hitboxsbireL = 0; | ||
29 | -int hitboxsbireH = 0; | ||
30 | -int hitboxbouillieL = 0; | ||
31 | -int hitboxbouillieH = 0; | ||
32 | -int hitboxbombeL = 0; | ||
33 | -int hitboxbombeH = 0; | ||
34 | - | ||
35 | -char Nom[] = "Space Invader"; | ||
36 | -char input = '\0'; | ||
37 | - | ||
38 | - | ||
39 | -void initialiser() | ||
40 | -{ | ||
41 | - canon = chargerLutin ("../../Lutins/invader_canon.bmp", | ||
42 | - COULEUR_NOIR); | ||
43 | - missile = chargerLutin ("../../Lutins/invader_missile.bmp", | ||
44 | - COULEUR_NOIR); | ||
45 | - sbire = chargerLutin ("../../Lutins/invader_monstre1_1.bmp", | ||
46 | - COULEUR_NOIR); | ||
47 | - bouillie = chargerLutin ("../../Lutins/invader_monstre_bouillie.bmp", | ||
48 | - COULEUR_NOIR); | ||
49 | - bombe = chargerLutin ("../../Lutins/invader_bombe.bmp", | ||
50 | - COULEUR_NOIR); | ||
51 | - | ||
52 | - tailleLutin (canon, | ||
53 | - &hitboxcanonL, | ||
54 | - &hitboxcanonH); | ||
55 | - tailleLutin (missile, | ||
56 | - &hitboxmissileL, | ||
57 | - &hitboxmissileH); | ||
58 | - tailleLutin (sbire, | ||
59 | - &hitboxsbireL, | ||
60 | - &hitboxsbireH); | ||
61 | - tailleLutin (bouillie, | ||
62 | - &hitboxbouillieL, | ||
63 | - &hitboxbouillieH); | ||
64 | - tailleLutin (bombe, | ||
65 | - &hitboxbombeL, | ||
66 | - &hitboxbombeH); | ||
67 | - | ||
68 | -} | ||
69 | - | ||
70 | - | ||
71 | -void initialiserjoueur(struct entite* joueur) | ||
72 | -{ | ||
73 | - joueur->posx = JoueurX; | ||
74 | - joueur->posy = JoueurY; | ||
75 | - joueur->dropbombe = -1; | ||
76 | -} | ||
77 | - | ||
78 | - | ||
79 | -char pagedemarrage() | ||
80 | -{ | ||
81 | - static const char policeDefaut[] = "/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf"; | ||
82 | - int Largeur = 0; | ||
83 | - int Hauteur = 0; | ||
84 | - char jouer[] = "Appuyer sur j pour Jouer"; | ||
85 | - char quitter[] = "Appuyer ailleurs pour Quitter"; | ||
86 | - | ||
87 | - choisirPolice (policeDefaut, TailleX / 20); | ||
88 | - int LutinJouer = lutinTexte (jouer, COULEUR_BLANC); | ||
89 | - int LutinQuitter = lutinTexte (quitter, COULEUR_BLANC); | ||
90 | - | ||
91 | - choisirPolice (policeDefaut,TailleX / 10); | ||
92 | - int LutinBienvenue = lutinTexte (Nom, COULEUR_VERT); | ||
93 | - | ||
94 | - rectanglePlein (0, | ||
95 | - 0, | ||
96 | - TailleX, | ||
97 | - TailleY, | ||
98 | - COULEUR_NOIR); | ||
99 | - | ||
100 | - tailleLutin (LutinBienvenue, | ||
101 | - &Largeur, | ||
102 | - &Hauteur); | ||
103 | - afficherLutin (LutinBienvenue, | ||
104 | - TailleX / 2 - Largeur / 2, | ||
105 | - TailleY / 4 + Hauteur / 2); | ||
106 | - | ||
107 | - tailleLutin (LutinJouer, | ||
108 | - &Largeur, | ||
109 | - &Hauteur); | ||
110 | - afficherLutin (LutinJouer, | ||
111 | - TailleX/2-Largeur/2, | ||
112 | - TailleY/2-Hauteur/2); | ||
113 | - | ||
114 | - tailleLutin (LutinQuitter, | ||
115 | - &Largeur, | ||
116 | - &Hauteur); | ||
117 | - afficherLutin (LutinQuitter, | ||
118 | - TailleX / 2 - Largeur / 2, | ||
119 | - TailleY / 2 + Hauteur / 2); | ||
120 | - | ||
121 | - attendreEvenement (); | ||
122 | - | ||
123 | - input = touche(); | ||
124 | - while (input == '\0') | ||
125 | - { | ||
126 | - input = touche(); | ||
127 | - } | ||
128 | - return input; | ||
129 | -} | ||
130 | - | ||
131 | - | ||
132 | -void pagemort (int nbr_vie) | ||
133 | -{ | ||
134 | - static const char policeDefaut[] = "/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf"; | ||
135 | - int Largeur = 0; | ||
136 | - int Hauteur = 0; | ||
137 | - char mort[] = "Vous etes mort"; | ||
138 | - char vie[30] = "\0"; | ||
139 | - sprintf(vie, "Nombre de vie restante : %d", nbr_vie); | ||
140 | - | ||
141 | - choisirPolice (policeDefaut, TailleX / 10); | ||
142 | - int LutinMort = lutinTexte(mort, COULEUR_ROUGE); | ||
143 | - | ||
144 | - choisirPolice (policeDefaut, TailleX / 20); | ||
145 | - int LutinVie = lutinTexte(vie, COULEUR_BLANC); | ||
146 | - | ||
147 | - rectanglePlein (0, | ||
148 | - 0, | ||
149 | - TailleX, | ||
150 | - TailleY, | ||
151 | - COULEUR_NOIR); | ||
152 | - | ||
153 | - tailleLutin (LutinMort, | ||
154 | - &Largeur, | ||
155 | - &Hauteur); | ||
156 | - afficherLutin (LutinMort, | ||
157 | - TailleX / 2 - Largeur / 2, | ||
158 | - TailleY / 4 + Hauteur / 2); | ||
159 | - | ||
160 | - tailleLutin (LutinVie, | ||
161 | - &Largeur, | ||
162 | - &Hauteur); | ||
163 | - afficherLutin (LutinVie, | ||
164 | - TailleX / 2 - Largeur / 2, | ||
165 | - TailleY / 2 - Hauteur / 2); | ||
166 | -} | ||
167 | - | ||
168 | - | ||
169 | -void pageGameOver() | ||
170 | -{ | ||
171 | - static const char policeDefaut[] = "/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf"; | ||
172 | - int Largeur = 0; | ||
173 | - int Hauteur = 0; | ||
174 | - char fin[] = "GAME OVER"; | ||
175 | - | ||
176 | - choisirPolice(policeDefaut, TailleX / 10); | ||
177 | - int LutinFin = lutinTexte(fin, COULEUR_ROUGE); | ||
178 | - | ||
179 | - rectanglePlein (0, | ||
180 | - 0, | ||
181 | - TailleX, | ||
182 | - TailleY, | ||
183 | - COULEUR_NOIR); | ||
184 | - | ||
185 | - tailleLutin (LutinFin, | ||
186 | - &Largeur, | ||
187 | - &Hauteur); | ||
188 | - afficherLutin (LutinFin, | ||
189 | - TailleX / 2 - Largeur / 2, | ||
190 | - TailleY / 2 - Hauteur / 2); | ||
191 | - | ||
192 | -} | ||
193 | - | ||
194 | - | ||
195 | -void pageVictoire() | ||
196 | -{ | ||
197 | - static const char policeDefaut[] = "/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf"; | ||
198 | - int Largeur = 0; | ||
199 | - int Hauteur = 0; | ||
200 | - char fin[] = "VICTOIRE"; | ||
201 | - | ||
202 | - choisirPolice(policeDefaut, TailleX / 10); | ||
203 | - int LutinFin = lutinTexte(fin, COULEUR_VERT); | ||
204 | - | ||
205 | - rectanglePlein (0, | ||
206 | - 0, | ||
207 | - TailleX, | ||
208 | - TailleY, | ||
209 | - COULEUR_NOIR); | ||
210 | - | ||
211 | - tailleLutin (LutinFin, | ||
212 | - &Largeur, | ||
213 | - &Hauteur); | ||
214 | - afficherLutin (LutinFin, | ||
215 | - TailleX / 2 - Largeur / 2, | ||
216 | - TailleY / 2 - Hauteur / 2); | ||
217 | - | ||
218 | -} |
Main/init.h deleted
@@ -1,30 +0,0 @@ | @@ -1,30 +0,0 @@ | ||
1 | -#include <stdio.h> | ||
2 | -#include <stdlib.h> | ||
3 | - | ||
4 | -extern int canon; | ||
5 | -extern int missile; | ||
6 | -extern int sbire; | ||
7 | -extern int bouillie; | ||
8 | -extern int bombe; | ||
9 | - | ||
10 | -extern struct entite joueur; | ||
11 | -extern char Nom[15]; | ||
12 | -extern char input; | ||
13 | - | ||
14 | -extern int hitboxcanonL; | ||
15 | -extern int hitboxcanonH; | ||
16 | -extern int hitboxmissileL; | ||
17 | -extern int hitboxmissileH; | ||
18 | -extern int hitboxsbireL; | ||
19 | -extern int hitboxsbireH; | ||
20 | -extern int hitboxbouillieL; | ||
21 | -extern int hitboxbouillieH; | ||
22 | -extern int hitboxbombeL; | ||
23 | -extern int hitboxbombeH; | ||
24 | - | ||
25 | -void initialiser(); | ||
26 | -void initialiserjoueur(struct entite*); | ||
27 | -char pagedemarrage(); | ||
28 | -void pagemort(int); | ||
29 | -void pageGameOver(); | ||
30 | -void pageVictoire(); |
Main/main.c deleted
@@ -1,149 +0,0 @@ | @@ -1,149 +0,0 @@ | ||
1 | -#include <stdio.h> | ||
2 | -#include <stdlib.h> | ||
3 | -#include <unistd.h> | ||
4 | -#include <SDL/SDL.h> | ||
5 | -#include "../Graphique/libgraph.h" | ||
6 | -#include "../ListeC/Liste.h" | ||
7 | -#include "../Monstre/Monstre.h" | ||
8 | -#include "../Interactif/Interactif.h" | ||
9 | -#include "init.h" | ||
10 | - | ||
11 | -#define TailleX 500 | ||
12 | -#define TailleY 500 | ||
13 | -#define Sol 475 | ||
14 | -#define ErreurHitbox 2 | ||
15 | - | ||
16 | -int main() | ||
17 | -{ | ||
18 | - creerSurface(TailleX,TailleY,Nom); | ||
19 | - | ||
20 | - initialiser(); | ||
21 | - initialiserjoueur(&joueur); | ||
22 | - | ||
23 | - struct liste_entite *enemies = NULL; | ||
24 | - struct liste_entite *tires = NULL; | ||
25 | - struct liste_entite *bombes = NULL; | ||
26 | - //joueur est dans une liste pour que je puisse utiliser des fonctions deja crรฉรฉ | ||
27 | - struct liste_entite* Ljoueur = NULL; | ||
28 | - ajout_tete(&Ljoueur,joueur); | ||
29 | - | ||
30 | - | ||
31 | - LigneSbire(&enemies,8,3); | ||
32 | - int SensVague=1; | ||
33 | - | ||
34 | - int compteur=0; | ||
35 | - int DropAlea=0; | ||
36 | - int CheckAlea=0; | ||
37 | - int mort = 0; | ||
38 | - int nbr_vie = 3; | ||
39 | - char Touchememoire = '\0'; | ||
40 | - int compteurtouche = 0; | ||
41 | - | ||
42 | - if ( pagedemarrage() != 'j') | ||
43 | - { | ||
44 | - return 0; | ||
45 | - } | ||
46 | - SDL_Delay(500); | ||
47 | - | ||
48 | - //Bouble principale | ||
49 | - while(input!='m') | ||
50 | - { | ||
51 | - if (mort == 1) | ||
52 | - { | ||
53 | - nbr_vie-=1; | ||
54 | - if (nbr_vie > 0) | ||
55 | - { | ||
56 | - pagemort(nbr_vie); | ||
57 | - majSurface(); | ||
58 | - SDL_Delay(2000); | ||
59 | - mort = 0; | ||
60 | - } | ||
61 | - else | ||
62 | - { | ||
63 | - pageGameOver(); | ||
64 | - majSurface(); | ||
65 | - SDL_Delay(2000); | ||
66 | - return 0; | ||
67 | - } | ||
68 | - ajout_tete(&Ljoueur,joueur); | ||
69 | - tires = NULL; | ||
70 | - bombes = NULL; | ||
71 | - } | ||
72 | - | ||
73 | - rectanglePlein(0,0,TailleX,TailleY,COULEUR_NOIR); | ||
74 | - rectanglePlein(0,Sol,TailleX,2,COULEUR_VERT); | ||
75 | - | ||
76 | - afficherLutin(canon,Ljoueur->entite.posx - hitboxcanonL/2 + ErreurHitbox,Ljoueur->entite.posy); | ||
77 | - AfficherSbire(enemies,sbire,hitboxsbireL,hitboxsbireH); | ||
78 | - | ||
79 | - if (DropAlea == 0) | ||
80 | - { | ||
81 | - DropAlea = rand() % 31 + 100; | ||
82 | - } | ||
83 | - if (CheckAlea == DropAlea) | ||
84 | - { | ||
85 | - MakeBombeDroppable(enemies,&bombes); | ||
86 | - DropAlea=0; | ||
87 | - CheckAlea=0; | ||
88 | - } | ||
89 | - | ||
90 | - | ||
91 | - input = touche(); | ||
92 | - if (input != '\0') | ||
93 | - { | ||
94 | - Touchememoire = input; | ||
95 | - compteurtouche += 1; | ||
96 | - } | ||
97 | - if (compteurtouche == 2) | ||
98 | - { | ||
99 | - Touchememoire = '\0'; | ||
100 | - compteurtouche = 0; | ||
101 | - } | ||
102 | - else if (compteurtouche == 1) | ||
103 | - { | ||
104 | - action(&Ljoueur->entite,Touchememoire,&tires); | ||
105 | - } | ||
106 | - | ||
107 | - | ||
108 | - | ||
109 | - if (compteur==10) | ||
110 | - { | ||
111 | - DeplacementSbire(enemies,&SensVague,1); | ||
112 | - compteur=0; | ||
113 | - } | ||
114 | - | ||
115 | - DeplacementTire(missile,&tires); | ||
116 | - DeplacementBombe(bombe,&bombes); | ||
117 | - | ||
118 | - SupprimerEntitesEnCollision(&tires,hitboxmissileL,hitboxmissileH,&enemies,hitboxsbireL,hitboxsbireH); | ||
119 | - | ||
120 | - if (SupprimerEntitesEnCollision(&bombes,hitboxbombeL,hitboxbombeH,&Ljoueur,hitboxcanonL,hitboxcanonH) == 1) | ||
121 | - { | ||
122 | - mort = 1; | ||
123 | - majSurface(); | ||
124 | - SDL_Delay(200); | ||
125 | - } | ||
126 | - if (SupprimerEntitesEnCollision(&enemies,hitboxsbireL,hitboxsbireH,&Ljoueur,hitboxcanonL,hitboxcanonH) == 1) | ||
127 | - { | ||
128 | - pageGameOver(); | ||
129 | - majSurface(); | ||
130 | - SDL_Delay(2000); | ||
131 | - return 0; | ||
132 | - } | ||
133 | - | ||
134 | - if (enemies == NULL) | ||
135 | - { | ||
136 | - pageVictoire(); | ||
137 | - majSurface(); | ||
138 | - SDL_Delay(2000); | ||
139 | - return 0; | ||
140 | - } | ||
141 | - | ||
142 | - majSurface(); | ||
143 | - SDL_Delay(20); | ||
144 | - | ||
145 | - compteur+=1; | ||
146 | - CheckAlea+=1; | ||
147 | - } | ||
148 | - return 0; | ||
149 | -} |
Monstre/Monstre.c deleted
@@ -1,99 +0,0 @@ | @@ -1,99 +0,0 @@ | ||
1 | -#include <stdio.h> | ||
2 | -#include <stdlib.h> | ||
3 | - | ||
4 | -#include "../Graphique/libgraph.h" | ||
5 | -#include "../ListeC/Liste.h" | ||
6 | -#include "Monstre.h" | ||
7 | - | ||
8 | -#define TailleX 500 | ||
9 | -#define TailleY 500 | ||
10 | -#define ErreurHitbox 2 | ||
11 | - | ||
12 | -//Sens = 1 -> Va vers la droite | ||
13 | -void DeplacementSbire(struct liste_entite* Liste, | ||
14 | - int* SensDeplacement, | ||
15 | - int Vitesse) | ||
16 | -{ | ||
17 | - | ||
18 | - int ind = 0; | ||
19 | - struct liste_entite* pListe = Liste; | ||
20 | - | ||
21 | - while (pListe != NULL) | ||
22 | - { | ||
23 | - pListe->entite.posx += (*SensDeplacement == 1) ? Vitesse : -Vitesse; | ||
24 | - | ||
25 | - if (pListe->entite.posx >= 9 * TailleX / 10) | ||
26 | - ind = 1; | ||
27 | - | ||
28 | - else if (pListe->entite.posx <= TailleX / 10) | ||
29 | - ind = 2; | ||
30 | - | ||
31 | - pListe = pListe->suivant; | ||
32 | - } | ||
33 | - | ||
34 | - if (ind != 0) | ||
35 | - { | ||
36 | - *SensDeplacement = (ind == 1) ? 0 : 1; | ||
37 | - struct liste_entite* p2Liste = Liste; | ||
38 | - | ||
39 | - while (p2Liste != NULL) | ||
40 | - { | ||
41 | - p2Liste->entite.posy += 30; | ||
42 | - p2Liste = p2Liste->suivant; | ||
43 | - } | ||
44 | - } | ||
45 | -} | ||
46 | - | ||
47 | - | ||
48 | -void LigneSbire (struct liste_entite** ListeSbire, | ||
49 | - int nbr_enemies, | ||
50 | - int nbr_rangee) | ||
51 | -{ | ||
52 | - | ||
53 | - for (int j = 1; j <= nbr_rangee; j++) | ||
54 | - { | ||
55 | - int compteurY = j * TailleY / 10; | ||
56 | - int compteurX = TailleX / nbr_enemies; | ||
57 | - | ||
58 | - for (int i = 0; i < nbr_enemies; i++) | ||
59 | - { | ||
60 | - if (j == nbr_rangee) | ||
61 | - { | ||
62 | - ajout_tete(ListeSbire, | ||
63 | - creer_entite(compteurX, | ||
64 | - compteurY, | ||
65 | - 1) | ||
66 | - ); | ||
67 | - compteurX += 2 * TailleX / (3 * nbr_enemies); | ||
68 | - } | ||
69 | - | ||
70 | - else | ||
71 | - { | ||
72 | - ajout_tete(ListeSbire, | ||
73 | - creer_entite(compteurX, | ||
74 | - compteurY, | ||
75 | - 0) | ||
76 | - ); | ||
77 | - compteurX += 2 * TailleX / (3 * nbr_enemies); | ||
78 | - } | ||
79 | - } | ||
80 | - } | ||
81 | -} | ||
82 | - | ||
83 | - | ||
84 | -void AfficherSbire (struct liste_entite* Liste, | ||
85 | - int lutin, | ||
86 | - int Largeur, | ||
87 | - int Hauteur) | ||
88 | -{ | ||
89 | - | ||
90 | - struct liste_entite* pListe = Liste; | ||
91 | - | ||
92 | - while (pListe != NULL) | ||
93 | - { | ||
94 | - afficherLutin(lutin, | ||
95 | - pListe->entite.posx - Largeur / 2 + ErreurHitbox, | ||
96 | - pListe->entite.posy - Hauteur / 2 + ErreurHitbox); | ||
97 | - pListe=pListe->suivant; | ||
98 | - } | ||
99 | -} |