#include #include #include #include #include "../Graphique/libgraph.h" #include "../ListeC/Liste.h" #include "../Monstre/Monstre.h" #include "../Interactif/Interactif.h" #include "init.h" #define TailleX 500 #define TailleY 500 #define Sol 475 #define ErreurHitbox 2 int main() { creerSurface(TailleX,TailleY,Nom); initialiser(); initialiserjoueur(&joueur); struct liste_entite *enemies = NULL; struct liste_entite *tires = NULL; struct liste_entite *bombes = NULL; //joueur est dans une liste pour que je puisse utiliser des fonctions deja créé struct liste_entite* Ljoueur = NULL; ajout_tete(&Ljoueur,joueur); LigneSbire(&enemies,8,3); int SensVague=1; int compteur=0; int DropAlea=0; int CheckAlea=0; int mort = 0; int nbr_vie = 3; char Touchememoire = '\0'; int compteurtouche = 0; if ( pagedemarrage() != 'j') { return 0; } SDL_Delay(500); //Bouble principale while(input!='m') { if (mort == 1) { nbr_vie-=1; if (nbr_vie > 0) { pagemort(nbr_vie); majSurface(); SDL_Delay(2000); mort = 0; } else { pageGameOver(); majSurface(); SDL_Delay(2000); return 0; } ajout_tete(&Ljoueur,joueur); tires = NULL; bombes = NULL; } rectanglePlein(0,0,TailleX,TailleY,COULEUR_NOIR); rectanglePlein(0,Sol,TailleX,2,COULEUR_VERT); afficherLutin(canon,Ljoueur->entite.posx - hitboxcanonL/2 + ErreurHitbox,Ljoueur->entite.posy); AfficherSbire(enemies,sbire,hitboxsbireL,hitboxsbireH); if (DropAlea == 0) { DropAlea = rand() % 31 + 100; } if (CheckAlea == DropAlea) { MakeBombeDroppable(enemies,&bombes); DropAlea=0; CheckAlea=0; } input = touche(); if (input != '\0') { Touchememoire = input; compteurtouche += 1; } if (compteurtouche == 2) { Touchememoire = '\0'; compteurtouche = 0; } else if (compteurtouche == 1) { action(&Ljoueur->entite,Touchememoire,&tires); } if (compteur==10) { DeplacementSbire(enemies,&SensVague,1); compteur=0; } DeplacementTire(missile,&tires); DeplacementBombe(bombe,&bombes); SupprimerEntitesEnCollision(&tires,hitboxmissileL,hitboxmissileH,&enemies,hitboxsbireL,hitboxsbireH); if (SupprimerEntitesEnCollision(&bombes,hitboxbombeL,hitboxbombeH,&Ljoueur,hitboxcanonL,hitboxcanonH) == 1) { mort = 1; majSurface(); SDL_Delay(200); } if (SupprimerEntitesEnCollision(&enemies,hitboxsbireL,hitboxsbireH,&Ljoueur,hitboxcanonL,hitboxcanonH) == 1) { pageGameOver(); majSurface(); SDL_Delay(2000); return 0; } if (enemies == NULL) { pageVictoire(); majSurface(); SDL_Delay(2000); return 0; } majSurface(); SDL_Delay(20); compteur+=1; CheckAlea+=1; } return 0; }