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 | -# | |
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 | -/**** 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 | -/**** 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 | -#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 | -#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 | -#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 | -#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 | -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 | -#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 | -#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 | -#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 | -#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 | -} |