Blame view

Main/main.c 2.27 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
2fd95d7e   Martin CHAUVELIERE   1ere Version bis
14
  
590ac30b   Martin CHAUVELIERE   Debut Collision
15
  int CheckCollision(struct entite enti1,int L1,int H1,struct entite enti2 ,int L2, int H2)
2fd95d7e   Martin CHAUVELIERE   1ere Version bis
16
  {
590ac30b   Martin CHAUVELIERE   Debut Collision
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
      //CheckX
      int gauche1 = enti1.posx-L1;
      int droite1 = enti1.posx+L1;
      int gauche2 = enti2.posx-L2;
      int droite2 = enti2.posx+L2;
      int CheckX=0;
      if(gauche1 >= gauche2 && gauche1 <= droite2)
      {
          CheckX=1;
      }
      else if(droite1 >= gauche2 && droite1 <= droite2)
      {
          CheckX=1;
      }
      
      //CheckY
      int haut1 = enti1.posy-H1;
      int bas1 = enti1.posy+H1;
      int haut2 = enti2.posy-H2;
      int bas2 = enti2.posy+H2;
      int CheckY=0;
      if(haut1 >= bas2 && haut1 <= haut2)
      {
          CheckY=1;
      }
      else if(bas1 >= bas2 && bas1 <= haut2)
      {
          CheckY=1;
      }
      
      if(CheckX+CheckY==2){return 1;}
      return 0;
2fd95d7e   Martin CHAUVELIERE   1ere Version bis
49
50
  }
  
590ac30b   Martin CHAUVELIERE   Debut Collision
51
  int main()
65adbf2e   Martin CHAUVELIERE   1ere Version tierce
52
  {
590ac30b   Martin CHAUVELIERE   Debut Collision
53
      creerSurface(TailleX,TailleY,Nom);
65adbf2e   Martin CHAUVELIERE   1ere Version tierce
54
  
590ac30b   Martin CHAUVELIERE   Debut Collision
55
      initialiser();
65adbf2e   Martin CHAUVELIERE   1ere Version tierce
56
  
590ac30b   Martin CHAUVELIERE   Debut Collision
57
58
      char texte[15]="SCORE : ";
      int Score = lutinTexte(texte,COULEUR_ROUGE);
2fd95d7e   Martin CHAUVELIERE   1ere Version bis
59
      
590ac30b   Martin CHAUVELIERE   Debut Collision
60
      creer_liste(enemies);
2fd95d7e   Martin CHAUVELIERE   1ere Version bis
61
      creer_liste(tires);
2fd95d7e   Martin CHAUVELIERE   1ere Version bis
62
      
590ac30b   Martin CHAUVELIERE   Debut Collision
63
64
65
66
67
68
69
      Ligne_Monstre(&enemies,5);
      int SensVague=1;
      int *psens=&SensVague;
      
      printf("%d",hitboxcanonL);
      printf("%d",hitboxsbireL);
      printf("%d",hitboxmissileL);
2fd95d7e   Martin CHAUVELIERE   1ere Version bis
70
  
590ac30b   Martin CHAUVELIERE   Debut Collision
71
      while(input!='m')
2fd95d7e   Martin CHAUVELIERE   1ere Version bis
72
      {
590ac30b   Martin CHAUVELIERE   Debut Collision
73
74
75
          rectanglePlein(0,0,TailleX,TailleY,COULEUR_NOIR);
          rectanglePlein(0,Sol,TailleX,2,COULEUR_VERT);
          
2fd95d7e   Martin CHAUVELIERE   1ere Version bis
76
          afficherLutin(canon,joueur.posx,joueur.posy);
590ac30b   Martin CHAUVELIERE   Debut Collision
77
78
79
80
81
82
83
          DeplacementLutin(sbire,enemies,psens,1);
          
          
          input = touche();
          action(&joueur,input,&tires);
  
          DeplacementTire(missile,bouillie,&tires);
2fd95d7e   Martin CHAUVELIERE   1ere Version bis
84
          
590ac30b   Martin CHAUVELIERE   Debut Collision
85
86
87
88
89
90
91
92
93
94
95
96
97
          /* Test
          struct entite missile1 = &tires->enti;
          
          struct liste_entite *p;
          p = enemies;
          while (p != NULL)
          {
              int ok = CheckCollision(missile1,hitboxmissileL,hitboxmissileH,p->enti,hitboxsbireL,hitboxsbireH);
              printf("%d \n",ok);
              p=p->suivant;
          }
       */
          afficherLutin(Score,0,Sol);
65adbf2e   Martin CHAUVELIERE   1ere Version tierce
98
          
2fd95d7e   Martin CHAUVELIERE   1ere Version bis
99
          majSurface();
590ac30b   Martin CHAUVELIERE   Debut Collision
100
          
2fd95d7e   Martin CHAUVELIERE   1ere Version bis
101
102
103
104
          SDL_Delay(20);
      }
      return 0;
  }