Blame view

Main/main.c 2.72 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
          if (mort == 1)
          {
              nbr_vie-=1;
              if (nbr_vie > 0)
              {
                  pagemort(nbr_vie);
4d73f71e   Martin CHAUVELIERE   Principal du jeu ...
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
                  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
70
71
          rectanglePlein(0,0,TailleX,TailleY,COULEUR_NOIR);
          rectanglePlein(0,Sol,TailleX,2,COULEUR_VERT);
3ab4f73a   Martin CHAUVELIERE   Amelioration Coll...
72
  
3c835d74   Martin CHAUVELIERE   Premieres amelior...
73
74
          afficherLutin(canon,Ljoueur->entite.posx - hitboxcanonL/2 + ErreurHitbox,Ljoueur->entite.posy);
          AfficherSbire(enemies,sbire,hitboxsbireL,hitboxsbireH);
4d73f71e   Martin CHAUVELIERE   Principal du jeu ...
75
             
3ab4f73a   Martin CHAUVELIERE   Amelioration Coll...
76
          if (DropAlea == 0)
0cc8564c   Martin CHAUVELIERE   Fin des colisions...
77
          {
3ab4f73a   Martin CHAUVELIERE   Amelioration Coll...
78
              DropAlea = rand() % 31 + 100;
0cc8564c   Martin CHAUVELIERE   Fin des colisions...
79
          }
3ab4f73a   Martin CHAUVELIERE   Amelioration Coll...
80
81
82
83
84
85
86
          if (CheckAlea == DropAlea)
          {
              MakeBombeDroppable(enemies,&bombes);
              DropAlea=0;
              CheckAlea=0;
          }
          
590ac30b   Martin CHAUVELIERE   Debut Collision
87
          input = touche();
3c835d74   Martin CHAUVELIERE   Premieres amelior...
88
          action(&Ljoueur->entite,input,&tires);
590ac30b   Martin CHAUVELIERE   Debut Collision
89
  
3ab4f73a   Martin CHAUVELIERE   Amelioration Coll...
90
91
92
93
94
95
          if (compteur==10)
          {
              DeplacementSbire(enemies,&SensVague,1);
              compteur=0;
          } 
  
66b129e5   Martin CHAUVELIERE   Collisions Sbires...
96
          DeplacementTire(missile,&tires);
3ab4f73a   Martin CHAUVELIERE   Amelioration Coll...
97
98
          DeplacementBombe(bombe,&bombes);
          
0cc8564c   Martin CHAUVELIERE   Fin des colisions...
99
          SupprimerEntitesEnCollision(&tires,hitboxmissileL,hitboxmissileH,&enemies,hitboxsbireL,hitboxsbireH);
4d73f71e   Martin CHAUVELIERE   Principal du jeu ...
100
101
102
103
104
105
          if (SupprimerEntitesEnCollision(&bombes,hitboxbombeL,hitboxbombeH,&Ljoueur,hitboxcanonL,hitboxcanonH) == 1)
          {
              mort = 1;
              majSurface();
              SDL_Delay(200);
          }
65adbf2e   Martin CHAUVELIERE   1ere Version tierce
106
          
2fd95d7e   Martin CHAUVELIERE   1ere Version bis
107
          majSurface();
2fd95d7e   Martin CHAUVELIERE   1ere Version bis
108
          SDL_Delay(20);
0cc8564c   Martin CHAUVELIERE   Fin des colisions...
109
          
3ab4f73a   Martin CHAUVELIERE   Amelioration Coll...
110
111
          compteur+=1;
          CheckAlea+=1;
2fd95d7e   Martin CHAUVELIERE   1ere Version bis
112
113
114
      }
      return 0;
  }