Blame view

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