Blame view

Main/main.c 3.53 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
      int mort = 0;
      int nbr_vie = 3;
28da2ac2   Martin CHAUVELIERE   Ajout Victoire, c...
39
40
      char Touchememoire = '\0';
      int compteurtouche = 0;
4d73f71e   Martin CHAUVELIERE   Principal du jeu ...
41
  
28da2ac2   Martin CHAUVELIERE   Ajout Victoire, c...
42
      if ( pagedemarrage() != 'j')
0cc8564c   Martin CHAUVELIERE   Fin des colisions...
43
44
45
      {
          return 0;
      }
28da2ac2   Martin CHAUVELIERE   Ajout Victoire, c...
46
      SDL_Delay(500);
66b129e5   Martin CHAUVELIERE   Collisions Sbires...
47
      
0cc8564c   Martin CHAUVELIERE   Fin des colisions...
48
      //Bouble principale
590ac30b   Martin CHAUVELIERE   Debut Collision
49
      while(input!='m')
2fd95d7e   Martin CHAUVELIERE   1ere Version bis
50
      {
4d73f71e   Martin CHAUVELIERE   Principal du jeu ...
51
52
53
54
55
56
          if (mort == 1)
          {
              nbr_vie-=1;
              if (nbr_vie > 0)
              {
                  pagemort(nbr_vie);
4d73f71e   Martin CHAUVELIERE   Principal du jeu ...
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
                  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
73
74
          rectanglePlein(0,0,TailleX,TailleY,COULEUR_NOIR);
          rectanglePlein(0,Sol,TailleX,2,COULEUR_VERT);
3ab4f73a   Martin CHAUVELIERE   Amelioration Coll...
75
  
3c835d74   Martin CHAUVELIERE   Premieres amelior...
76
77
          afficherLutin(canon,Ljoueur->entite.posx - hitboxcanonL/2 + ErreurHitbox,Ljoueur->entite.posy);
          AfficherSbire(enemies,sbire,hitboxsbireL,hitboxsbireH);
4d73f71e   Martin CHAUVELIERE   Principal du jeu ...
78
             
3ab4f73a   Martin CHAUVELIERE   Amelioration Coll...
79
          if (DropAlea == 0)
0cc8564c   Martin CHAUVELIERE   Fin des colisions...
80
          {
3ab4f73a   Martin CHAUVELIERE   Amelioration Coll...
81
              DropAlea = rand() % 31 + 100;
0cc8564c   Martin CHAUVELIERE   Fin des colisions...
82
          }
3ab4f73a   Martin CHAUVELIERE   Amelioration Coll...
83
84
85
86
87
88
89
          if (CheckAlea == DropAlea)
          {
              MakeBombeDroppable(enemies,&bombes);
              DropAlea=0;
              CheckAlea=0;
          }
          
28da2ac2   Martin CHAUVELIERE   Ajout Victoire, c...
90
          
590ac30b   Martin CHAUVELIERE   Debut Collision
91
          input = touche();
28da2ac2   Martin CHAUVELIERE   Ajout Victoire, c...
92
93
94
95
96
97
98
99
100
101
102
103
104
105
          if (input != '\0')
          {
              Touchememoire = input;
              compteurtouche += 1;
          }
          if (compteurtouche == 2)
          {
              Touchememoire = '\0';
              compteurtouche = 0;
          }
          else if (compteurtouche == 1)
          {
              action(&Ljoueur->entite,Touchememoire,&tires);
          }
590ac30b   Martin CHAUVELIERE   Debut Collision
106
  
28da2ac2   Martin CHAUVELIERE   Ajout Victoire, c...
107
108
          
          
3ab4f73a   Martin CHAUVELIERE   Amelioration Coll...
109
110
111
112
113
114
          if (compteur==10)
          {
              DeplacementSbire(enemies,&SensVague,1);
              compteur=0;
          } 
  
66b129e5   Martin CHAUVELIERE   Collisions Sbires...
115
          DeplacementTire(missile,&tires);
3ab4f73a   Martin CHAUVELIERE   Amelioration Coll...
116
117
          DeplacementBombe(bombe,&bombes);
          
0cc8564c   Martin CHAUVELIERE   Fin des colisions...
118
          SupprimerEntitesEnCollision(&tires,hitboxmissileL,hitboxmissileH,&enemies,hitboxsbireL,hitboxsbireH);
28da2ac2   Martin CHAUVELIERE   Ajout Victoire, c...
119
          
4d73f71e   Martin CHAUVELIERE   Principal du jeu ...
120
121
122
123
124
125
          if (SupprimerEntitesEnCollision(&bombes,hitboxbombeL,hitboxbombeH,&Ljoueur,hitboxcanonL,hitboxcanonH) == 1)
          {
              mort = 1;
              majSurface();
              SDL_Delay(200);
          }
28da2ac2   Martin CHAUVELIERE   Ajout Victoire, c...
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
          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;
          }
65adbf2e   Martin CHAUVELIERE   1ere Version tierce
141
          
2fd95d7e   Martin CHAUVELIERE   1ere Version bis
142
          majSurface();
2fd95d7e   Martin CHAUVELIERE   1ere Version bis
143
          SDL_Delay(20);
0cc8564c   Martin CHAUVELIERE   Fin des colisions...
144
          
3ab4f73a   Martin CHAUVELIERE   Amelioration Coll...
145
146
          compteur+=1;
          CheckAlea+=1;
2fd95d7e   Martin CHAUVELIERE   1ere Version bis
147
148
149
      }
      return 0;
  }