Blame view

Main/main.c 2.76 KB
2fd95d7e   Martin CHAUVELIERE   1ere Version bis
1
  #include <stdio.h>
590ac30b   Martin CHAUVELIERE   Debut Collision
2
  #include <stdlib.h>
2fd95d7e   Martin CHAUVELIERE   1ere Version bis
3
4
5
6
7
  #include <unistd.h>
  #include <SDL/SDL.h>
  #include "../Graphique/libgraph.h"
  #include "../ListeC/Liste.h"
  #include "../Monstre/Monstre.h"
590ac30b   Martin CHAUVELIERE   Debut Collision
8
9
  #include "../Interactif/Interactif.h"
  #include "init.h"
2fd95d7e   Martin CHAUVELIERE   1ere Version bis
10
11
12
  
  #define TailleX 500
  #define TailleY 500
590ac30b   Martin CHAUVELIERE   Debut Collision
13
  #define Sol 475
66b129e5   Martin CHAUVELIERE   Collisions Sbires...
14
  #define ErreurHitbox 2
2fd95d7e   Martin CHAUVELIERE   1ere Version bis
15
  
590ac30b   Martin CHAUVELIERE   Debut Collision
16
  int main()
65adbf2e   Martin CHAUVELIERE   1ere Version tierce
17
  {
590ac30b   Martin CHAUVELIERE   Debut Collision
18
      creerSurface(TailleX,TailleY,Nom);
65adbf2e   Martin CHAUVELIERE   1ere Version tierce
19
  
590ac30b   Martin CHAUVELIERE   Debut Collision
20
      initialiser();
4d73f71e   Martin CHAUVELIERE   Principal du jeu ...
21
22
      initialiserjoueur(&joueur);
          
0cc8564c   Martin CHAUVELIERE   Fin des colisions...
23
24
      struct liste_entite *enemies = NULL;
      struct liste_entite *tires = NULL;
3ab4f73a   Martin CHAUVELIERE   Amelioration Coll...
25
      struct liste_entite *bombes = NULL;
4d73f71e   Martin CHAUVELIERE   Principal du jeu ...
26
27
28
      //joueur est dans une liste pour que je puisse utiliser des fonctions deja créé
      struct liste_entite* Ljoueur = NULL;
      ajout_tete(&Ljoueur,joueur);
2fd95d7e   Martin CHAUVELIERE   1ere Version bis
29
      
2fd95d7e   Martin CHAUVELIERE   1ere Version bis
30
      
3ab4f73a   Martin CHAUVELIERE   Amelioration Coll...
31
      LigneSbire(&enemies,8,3);
590ac30b   Martin CHAUVELIERE   Debut Collision
32
      int SensVague=1;
2fd95d7e   Martin CHAUVELIERE   1ere Version bis
33
  
3ab4f73a   Martin CHAUVELIERE   Amelioration Coll...
34
35
36
      int compteur=0;
      int DropAlea=0;
      int CheckAlea=0;
4d73f71e   Martin CHAUVELIERE   Principal du jeu ...
37
38
39
      int mort = 0;
      int nbr_vie = 3;
  
0cc8564c   Martin CHAUVELIERE   Fin des colisions...
40
41
42
43
      if (pagedemarrage() != 'j')
      {
          return 0;
      }
66b129e5   Martin CHAUVELIERE   Collisions Sbires...
44
      
0cc8564c   Martin CHAUVELIERE   Fin des colisions...
45
      //Bouble principale
590ac30b   Martin CHAUVELIERE   Debut Collision
46
      while(input!='m')
2fd95d7e   Martin CHAUVELIERE   1ere Version bis
47
      {
4d73f71e   Martin CHAUVELIERE   Principal du jeu ...
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
          if (mort == 1)
          {
              nbr_vie-=1;
              if (nbr_vie > 0)
              {
                  pagemort(nbr_vie);
                  printf("%d \n",joueur.posx);
                  majSurface();
                  SDL_Delay(2000);
                  mort = 0;
              }
              else
              {
                  pageGameOver();
                  majSurface();
                  SDL_Delay(2000);
                  return 0;
              }
              ajout_tete(&Ljoueur,joueur);
              tires = NULL;
              bombes = NULL;
          }
          
590ac30b   Martin CHAUVELIERE   Debut Collision
71
72
          rectanglePlein(0,0,TailleX,TailleY,COULEUR_NOIR);
          rectanglePlein(0,Sol,TailleX,2,COULEUR_VERT);
3ab4f73a   Martin CHAUVELIERE   Amelioration Coll...
73
  
4d73f71e   Martin CHAUVELIERE   Principal du jeu ...
74
75
76
          afficherLutin(canon,Ljoueur->enti.posx - hitboxcanonL/2 + ErreurHitbox,Ljoueur->enti.posy);
          AfficherSbire(sbire,hitboxsbireL,hitboxsbireH,enemies);
             
3ab4f73a   Martin CHAUVELIERE   Amelioration Coll...
77
          if (DropAlea == 0)
0cc8564c   Martin CHAUVELIERE   Fin des colisions...
78
          {
3ab4f73a   Martin CHAUVELIERE   Amelioration Coll...
79
              DropAlea = rand() % 31 + 100;
0cc8564c   Martin CHAUVELIERE   Fin des colisions...
80
          }
3ab4f73a   Martin CHAUVELIERE   Amelioration Coll...
81
82
83
84
85
86
87
          if (CheckAlea == DropAlea)
          {
              MakeBombeDroppable(enemies,&bombes);
              DropAlea=0;
              CheckAlea=0;
          }
          
590ac30b   Martin CHAUVELIERE   Debut Collision
88
          input = touche();
4d73f71e   Martin CHAUVELIERE   Principal du jeu ...
89
          action(&Ljoueur->enti,input,&tires);
590ac30b   Martin CHAUVELIERE   Debut Collision
90
  
3ab4f73a   Martin CHAUVELIERE   Amelioration Coll...
91
92
93
94
95
96
          if (compteur==10)
          {
              DeplacementSbire(enemies,&SensVague,1);
              compteur=0;
          } 
  
66b129e5   Martin CHAUVELIERE   Collisions Sbires...
97
          DeplacementTire(missile,&tires);
3ab4f73a   Martin CHAUVELIERE   Amelioration Coll...
98
99
          DeplacementBombe(bombe,&bombes);
          
0cc8564c   Martin CHAUVELIERE   Fin des colisions...
100
          SupprimerEntitesEnCollision(&tires,hitboxmissileL,hitboxmissileH,&enemies,hitboxsbireL,hitboxsbireH);
4d73f71e   Martin CHAUVELIERE   Principal du jeu ...
101
102
103
104
105
106
          if (SupprimerEntitesEnCollision(&bombes,hitboxbombeL,hitboxbombeH,&Ljoueur,hitboxcanonL,hitboxcanonH) == 1)
          {
              mort = 1;
              majSurface();
              SDL_Delay(200);
          }
65adbf2e   Martin CHAUVELIERE   1ere Version tierce
107
          
2fd95d7e   Martin CHAUVELIERE   1ere Version bis
108
          majSurface();
2fd95d7e   Martin CHAUVELIERE   1ere Version bis
109
          SDL_Delay(20);
0cc8564c   Martin CHAUVELIERE   Fin des colisions...
110
          
3ab4f73a   Martin CHAUVELIERE   Amelioration Coll...
111
112
          compteur+=1;
          CheckAlea+=1;
2fd95d7e   Martin CHAUVELIERE   1ere Version bis
113
114
115
      }
      return 0;
  }