main.c
2.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <SDL/SDL.h>
#include "../Graphique/libgraph.h"
#include "../ListeC/Liste.h"
#include "../Monstre/Monstre.h"
#include "../Interactif/Interactif.h"
#include "init.h"
#define TailleX 500
#define TailleY 500
#define Sol 475
int CheckCollision(struct entite enti1,int L1,int H1,struct entite enti2 ,int L2, int H2)
{
//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;
}
int main()
{
creerSurface(TailleX,TailleY,Nom);
initialiser();
char texte[15]="SCORE : ";
int Score = lutinTexte(texte,COULEUR_ROUGE);
creer_liste(enemies);
creer_liste(tires);
Ligne_Monstre(&enemies,5);
int SensVague=1;
int *psens=&SensVague;
printf("%d",hitboxcanonL);
printf("%d",hitboxsbireL);
printf("%d",hitboxmissileL);
while(input!='m')
{
rectanglePlein(0,0,TailleX,TailleY,COULEUR_NOIR);
rectanglePlein(0,Sol,TailleX,2,COULEUR_VERT);
afficherLutin(canon,joueur.posx,joueur.posy);
DeplacementLutin(sbire,enemies,psens,1);
input = touche();
action(&joueur,input,&tires);
DeplacementTire(missile,bouillie,&tires);
/* 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);
majSurface();
SDL_Delay(20);
}
return 0;
}