diff --git a/main.c b/main.c new file mode 100644 index 0000000..439eb68 --- /dev/null +++ b/main.c @@ -0,0 +1,131 @@ +#include "Graphique/libgraph.h" +#include +#include +#include +#include "liste.h" +#define TAILLE_X 700 +#define TAILLE_Y 700 +#define LARGEUR_MONS 30 +#define HAUTEUR_MONS 30 +#define LARGEUR_VAIS 35 +#define M_SPEED 5 +#define CADENCE_MISSILE 600 +#define HAUTEUR_MONS 30 +#define LARGEUR_MISS 5 +#define HAUTEUR_MISS 10 + + + +l_entite* create_l_entite (int x,int y,int speed,int image); +entite create_entite (entite ent,int x,int y, int speed, int image); +void add_entite (l_entite** head,int x,int y,int speed,int image); +void display_l_entite (l_entite* mons); +void display_entite (entite ent); +void moveMonster (l_entite* monstre); +void addMissile (l_entite** head, entite vaisseau,int image); +void moveMissile (l_entite* msl); +void remove_missile (l_entite **head, entite *karim); +void detecterCollisions (l_entite* l_missile, l_entite* l_monstre); + + +int main() +{ + + l_entite* W_monster = NULL; + l_entite* B_monster = NULL; + l_entite* l_missile = NULL; + entite vaisseau; + entite missile; + entite missile_ref; + creerSurface(TAILLE_X,TAILLE_Y,"Space Invaders"); + + + + int ZB=lutinTexte("Space invaders", COULEUR_BLEU); + int M1=chargerLutin("Graphique/invader_monstre1_2.bmp", COULEUR_BLEU); + int M2=chargerLutin("Graphique/invader_monstre2_1.bmp", COULEUR_BLEU); + int V =chargerLutin("Graphique/invader_canon.bmp", COULEUR_BLEU); + int MI =chargerLutin("Graphique/invader_missile.bmp", COULEUR_BLEU); + + + + W_monster =create_l_entite(0,0,1,M1); + B_monster =create_l_entite(0,100,1,M2); + vaisseau =create_entite(vaisseau,0.5*TAILLE_X,0.95*TAILLE_Y,1,V); + missile_ref =create_entite(missile_ref,vaisseau.x + (LARGEUR_VAIS/2),400,1,MI); + l_missile =create_l_entite( vaisseau.x + (LARGEUR_VAIS/2),(vaisseau).y,1,MI); + + int i=0;int a =60; + for (i=0;i<4;i++) + { + add_entite(&W_monster,((W_monster->ent).x)+a,(W_monster->ent).y,1,M1); + add_entite(&B_monster,((B_monster->ent).x)+a,(B_monster->ent).y,1,M2); + a+=60; + } + + + + while(1) + { + evenement ev; + char touche; + l_missile = NULL; + lireEvenement(&ev,&touche,NULL); + if(ev==quitter) + {break; + } + rectanglePlein (0,0,TAILLE_X,TAILLE_Y,COULEUR_NOIR); + display_l_entite(W_monster); + display_l_entite(B_monster); + display_entite(vaisseau); + moveMonster( W_monster); + moveMonster( B_monster); + + + if (ev == toucheBas && touche == 'm') + { + if( l_missile == NULL) + { + addMissile (&l_missile, vaisseau,MI); + } + else if( l_missile->ent.y < CADENCE_MISSILE) + { + addMissile (&l_missile, vaisseau,MI); + + } + } + + display_l_entite(l_missile); + moveMissile(l_missile); + + detecterCollisions( l_missile, B_monster); + + if (ev == toucheBas && touche=='d') + { + vaisseau.x=vaisseau.x + 10; + if (vaisseau.x > TAILLE_X - LARGEUR_VAIS) + { + vaisseau.x = vaisseau.x - 10; + } + + } + + if (ev == toucheBas && touche == 'q') + { + vaisseau.x=vaisseau.x - 10; + if (vaisseau.x < 0) + { + vaisseau.x = vaisseau.x + 10; + } + } + + + + + afficherLutin(ZB,400,400); + majSurface(); + SDL_Delay(10); + + } + return 0; +} -- libgit2 0.21.2