Blame view

Monstre/Monstre.c 2.58 KB
2fd95d7e   Martin CHAUVELIERE   1ere Version bis
1
2
  #include <stdio.h>
  #include <stdlib.h>
3c835d74   Martin CHAUVELIERE   Premieres amelior...
3
  
2fd95d7e   Martin CHAUVELIERE   1ere Version bis
4
5
6
7
  #include "../Graphique/libgraph.h"
  #include "../ListeC/Liste.h"
  #include "Monstre.h"
  
590ac30b   Martin CHAUVELIERE   Debut Collision
8
9
  #define TailleX 500
  #define TailleY 500
3ab4f73a   Martin CHAUVELIERE   Amelioration Coll...
10
  #define ErreurHitbox 2
590ac30b   Martin CHAUVELIERE   Debut Collision
11
  
3ab4f73a   Martin CHAUVELIERE   Amelioration Coll...
12
  //Sens = 1 -> Va vers la droite
3c835d74   Martin CHAUVELIERE   Premieres amelior...
13
14
15
  void DeplacementSbire(struct liste_entite* Liste,
                        int*                 SensDeplacement,
                        int                  Vitesse)
2fd95d7e   Martin CHAUVELIERE   1ere Version bis
16
  {
3c835d74   Martin CHAUVELIERE   Premieres amelior...
17
18
19
20
21
      
      int                  ind    = 0;
      struct liste_entite* pListe = Liste;
  
      while (pListe != NULL)
2fd95d7e   Martin CHAUVELIERE   1ere Version bis
22
      {
3c835d74   Martin CHAUVELIERE   Premieres amelior...
23
24
25
26
27
28
29
30
31
          pListe->entite.posx += (*SensDeplacement == 1) ? Vitesse : -Vitesse;
  
          if      (pListe->entite.posx >= 9 * TailleX / 10)  
                  ind = 1;
          
          else if (pListe->entite.posx <= TailleX / 10) 
                   ind = 2;
  
          pListe = pListe->suivant;
2fd95d7e   Martin CHAUVELIERE   1ere Version bis
32
      }
3c835d74   Martin CHAUVELIERE   Premieres amelior...
33
34
  
      if (ind != 0)
2fd95d7e   Martin CHAUVELIERE   1ere Version bis
35
      {
3c835d74   Martin CHAUVELIERE   Premieres amelior...
36
37
38
39
          *SensDeplacement             = (ind == 1) ? 0 : 1;
          struct liste_entite* p2Liste = Liste;
          
          while (p2Liste != NULL)
2fd95d7e   Martin CHAUVELIERE   1ere Version bis
40
          {
3c835d74   Martin CHAUVELIERE   Premieres amelior...
41
42
              p2Liste->entite.posy += 30;
              p2Liste               = p2Liste->suivant;
2fd95d7e   Martin CHAUVELIERE   1ere Version bis
43
44
45
46
          }
      }
  }
  
590ac30b   Martin CHAUVELIERE   Debut Collision
47
  
3c835d74   Martin CHAUVELIERE   Premieres amelior...
48
49
50
  void LigneSbire (struct liste_entite** ListeSbire,
                   int                   nbr_enemies, 
                   int                   nbr_rangee)
590ac30b   Martin CHAUVELIERE   Debut Collision
51
  {
3c835d74   Martin CHAUVELIERE   Premieres amelior...
52
53
      
      for (int j = 1; j <= nbr_rangee; j++)
590ac30b   Martin CHAUVELIERE   Debut Collision
54
      {
3c835d74   Martin CHAUVELIERE   Premieres amelior...
55
56
          int compteurY = j * TailleY / 10;
          int compteurX = TailleX / nbr_enemies;
3ab4f73a   Martin CHAUVELIERE   Amelioration Coll...
57
          
3c835d74   Martin CHAUVELIERE   Premieres amelior...
58
          for (int i = 0; i < nbr_enemies; i++)
0cc8564c   Martin CHAUVELIERE   Fin des colisions...
59
          {
3ab4f73a   Martin CHAUVELIERE   Amelioration Coll...
60
61
              if (j == nbr_rangee)
              {
3c835d74   Martin CHAUVELIERE   Premieres amelior...
62
63
64
65
66
67
                  ajout_tete(ListeSbire,
                             creer_entite(compteurX,
                                          compteurY,
                                          1)
                            );
                  compteurX += 2 * TailleX / (3 * nbr_enemies);
3ab4f73a   Martin CHAUVELIERE   Amelioration Coll...
68
              }
3c835d74   Martin CHAUVELIERE   Premieres amelior...
69
              
3ab4f73a   Martin CHAUVELIERE   Amelioration Coll...
70
71
              else
              {
3c835d74   Martin CHAUVELIERE   Premieres amelior...
72
73
74
75
76
77
                  ajout_tete(ListeSbire,
                             creer_entite(compteurX,
                                          compteurY,
                                          0)
                            );
                  compteurX += 2 * TailleX / (3 * nbr_enemies);
3ab4f73a   Martin CHAUVELIERE   Amelioration Coll...
78
              }
0cc8564c   Martin CHAUVELIERE   Fin des colisions...
79
          }   
590ac30b   Martin CHAUVELIERE   Debut Collision
80
81
      }
  }
3ab4f73a   Martin CHAUVELIERE   Amelioration Coll...
82
  
3ab4f73a   Martin CHAUVELIERE   Amelioration Coll...
83
  
3c835d74   Martin CHAUVELIERE   Premieres amelior...
84
85
86
87
  void AfficherSbire (struct liste_entite* Liste,
                      int                  lutin,
                      int                  Largeur,
                      int                  Hauteur)
3ab4f73a   Martin CHAUVELIERE   Amelioration Coll...
88
  {
3c835d74   Martin CHAUVELIERE   Premieres amelior...
89
90
91
92
      
      struct liste_entite* pListe = Liste;
      
      while (pListe != NULL)
3ab4f73a   Martin CHAUVELIERE   Amelioration Coll...
93
      {
3c835d74   Martin CHAUVELIERE   Premieres amelior...
94
95
96
97
          afficherLutin(lutin,
                        pListe->entite.posx - Largeur / 2 + ErreurHitbox,
                        pListe->entite.posy - Hauteur / 2 + ErreurHitbox);
          pListe=pListe->suivant;
3ab4f73a   Martin CHAUVELIERE   Amelioration Coll...
98
99
      }
  }