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;
}
|