Commit c1ee1f58c1c77285c4047890881dfddd0f7a0315

Authored by Martin CHAUVELIERE
1 parent 1e8c0804

Suppresion nuisible

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   -}
Monstre/Monstre.h deleted
... ... @@ -1,8 +0,0 @@
1   -#include <stdio.h>
2   -#include <stdlib.h>
3   -
4   -void DeplacementSbire(struct liste_entite*,int*,int);
5   -
6   -void LigneSbire(struct liste_entite**,int,int);
7   -
8   -void AfficherSbire(struct liste_entite*,int,int,int);