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
|
66b129e5
Martin CHAUVELIERE
Collisions Sbires...
|
14
|
#define ErreurHitbox 2
|
2fd95d7e
Martin CHAUVELIERE
1ere Version bis
|
15
|
|
590ac30b
Martin CHAUVELIERE
Debut Collision
|
16
|
int main()
|
65adbf2e
Martin CHAUVELIERE
1ere Version tierce
|
17
|
{
|
590ac30b
Martin CHAUVELIERE
Debut Collision
|
18
|
creerSurface(TailleX,TailleY,Nom);
|
65adbf2e
Martin CHAUVELIERE
1ere Version tierce
|
19
|
|
590ac30b
Martin CHAUVELIERE
Debut Collision
|
20
|
initialiser();
|
4d73f71e
Martin CHAUVELIERE
Principal du jeu ...
|
21
22
|
initialiserjoueur(&joueur);
|
0cc8564c
Martin CHAUVELIERE
Fin des colisions...
|
23
24
|
struct liste_entite *enemies = NULL;
struct liste_entite *tires = NULL;
|
3ab4f73a
Martin CHAUVELIERE
Amelioration Coll...
|
25
|
struct liste_entite *bombes = NULL;
|
4d73f71e
Martin CHAUVELIERE
Principal du jeu ...
|
26
27
28
|
//joueur est dans une liste pour que je puisse utiliser des fonctions deja créé
struct liste_entite* Ljoueur = NULL;
ajout_tete(&Ljoueur,joueur);
|
2fd95d7e
Martin CHAUVELIERE
1ere Version bis
|
29
|
|
2fd95d7e
Martin CHAUVELIERE
1ere Version bis
|
30
|
|
3ab4f73a
Martin CHAUVELIERE
Amelioration Coll...
|
31
|
LigneSbire(&enemies,8,3);
|
590ac30b
Martin CHAUVELIERE
Debut Collision
|
32
|
int SensVague=1;
|
2fd95d7e
Martin CHAUVELIERE
1ere Version bis
|
33
|
|
3ab4f73a
Martin CHAUVELIERE
Amelioration Coll...
|
34
35
36
|
int compteur=0;
int DropAlea=0;
int CheckAlea=0;
|
4d73f71e
Martin CHAUVELIERE
Principal du jeu ...
|
37
38
|
int mort = 0;
int nbr_vie = 3;
|
28da2ac2
Martin CHAUVELIERE
Ajout Victoire, c...
|
39
40
|
char Touchememoire = '\0';
int compteurtouche = 0;
|
4d73f71e
Martin CHAUVELIERE
Principal du jeu ...
|
41
|
|
28da2ac2
Martin CHAUVELIERE
Ajout Victoire, c...
|
42
|
if ( pagedemarrage() != 'j')
|
0cc8564c
Martin CHAUVELIERE
Fin des colisions...
|
43
44
45
|
{
return 0;
}
|
28da2ac2
Martin CHAUVELIERE
Ajout Victoire, c...
|
46
|
SDL_Delay(500);
|
66b129e5
Martin CHAUVELIERE
Collisions Sbires...
|
47
|
|
0cc8564c
Martin CHAUVELIERE
Fin des colisions...
|
48
|
//Bouble principale
|
590ac30b
Martin CHAUVELIERE
Debut Collision
|
49
|
while(input!='m')
|
2fd95d7e
Martin CHAUVELIERE
1ere Version bis
|
50
|
{
|
4d73f71e
Martin CHAUVELIERE
Principal du jeu ...
|
51
52
53
54
55
56
|
if (mort == 1)
{
nbr_vie-=1;
if (nbr_vie > 0)
{
pagemort(nbr_vie);
|
4d73f71e
Martin CHAUVELIERE
Principal du jeu ...
|
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
majSurface();
SDL_Delay(2000);
mort = 0;
}
else
{
pageGameOver();
majSurface();
SDL_Delay(2000);
return 0;
}
ajout_tete(&Ljoueur,joueur);
tires = NULL;
bombes = NULL;
}
|
590ac30b
Martin CHAUVELIERE
Debut Collision
|
73
74
|
rectanglePlein(0,0,TailleX,TailleY,COULEUR_NOIR);
rectanglePlein(0,Sol,TailleX,2,COULEUR_VERT);
|
3ab4f73a
Martin CHAUVELIERE
Amelioration Coll...
|
75
|
|
3c835d74
Martin CHAUVELIERE
Premieres amelior...
|
76
77
|
afficherLutin(canon,Ljoueur->entite.posx - hitboxcanonL/2 + ErreurHitbox,Ljoueur->entite.posy);
AfficherSbire(enemies,sbire,hitboxsbireL,hitboxsbireH);
|
4d73f71e
Martin CHAUVELIERE
Principal du jeu ...
|
78
|
|
3ab4f73a
Martin CHAUVELIERE
Amelioration Coll...
|
79
|
if (DropAlea == 0)
|
0cc8564c
Martin CHAUVELIERE
Fin des colisions...
|
80
|
{
|
3ab4f73a
Martin CHAUVELIERE
Amelioration Coll...
|
81
|
DropAlea = rand() % 31 + 100;
|
0cc8564c
Martin CHAUVELIERE
Fin des colisions...
|
82
|
}
|
3ab4f73a
Martin CHAUVELIERE
Amelioration Coll...
|
83
84
85
86
87
88
89
|
if (CheckAlea == DropAlea)
{
MakeBombeDroppable(enemies,&bombes);
DropAlea=0;
CheckAlea=0;
}
|
28da2ac2
Martin CHAUVELIERE
Ajout Victoire, c...
|
90
|
|
590ac30b
Martin CHAUVELIERE
Debut Collision
|
91
|
input = touche();
|
28da2ac2
Martin CHAUVELIERE
Ajout Victoire, c...
|
92
93
94
95
96
97
98
99
100
101
102
103
104
105
|
if (input != '\0')
{
Touchememoire = input;
compteurtouche += 1;
}
if (compteurtouche == 2)
{
Touchememoire = '\0';
compteurtouche = 0;
}
else if (compteurtouche == 1)
{
action(&Ljoueur->entite,Touchememoire,&tires);
}
|
590ac30b
Martin CHAUVELIERE
Debut Collision
|
106
|
|
28da2ac2
Martin CHAUVELIERE
Ajout Victoire, c...
|
107
108
|
|
3ab4f73a
Martin CHAUVELIERE
Amelioration Coll...
|
109
110
111
112
113
114
|
if (compteur==10)
{
DeplacementSbire(enemies,&SensVague,1);
compteur=0;
}
|
66b129e5
Martin CHAUVELIERE
Collisions Sbires...
|
115
|
DeplacementTire(missile,&tires);
|
3ab4f73a
Martin CHAUVELIERE
Amelioration Coll...
|
116
117
|
DeplacementBombe(bombe,&bombes);
|
0cc8564c
Martin CHAUVELIERE
Fin des colisions...
|
118
|
SupprimerEntitesEnCollision(&tires,hitboxmissileL,hitboxmissileH,&enemies,hitboxsbireL,hitboxsbireH);
|
28da2ac2
Martin CHAUVELIERE
Ajout Victoire, c...
|
119
|
|
4d73f71e
Martin CHAUVELIERE
Principal du jeu ...
|
120
121
122
123
124
125
|
if (SupprimerEntitesEnCollision(&bombes,hitboxbombeL,hitboxbombeH,&Ljoueur,hitboxcanonL,hitboxcanonH) == 1)
{
mort = 1;
majSurface();
SDL_Delay(200);
}
|
28da2ac2
Martin CHAUVELIERE
Ajout Victoire, c...
|
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
|
if (SupprimerEntitesEnCollision(&enemies,hitboxsbireL,hitboxsbireH,&Ljoueur,hitboxcanonL,hitboxcanonH) == 1)
{
pageGameOver();
majSurface();
SDL_Delay(2000);
return 0;
}
if (enemies == NULL)
{
pageVictoire();
majSurface();
SDL_Delay(2000);
return 0;
}
|
65adbf2e
Martin CHAUVELIERE
1ere Version tierce
|
141
|
|
2fd95d7e
Martin CHAUVELIERE
1ere Version bis
|
142
|
majSurface();
|
2fd95d7e
Martin CHAUVELIERE
1ere Version bis
|
143
|
SDL_Delay(20);
|
0cc8564c
Martin CHAUVELIERE
Fin des colisions...
|
144
|
|
3ab4f73a
Martin CHAUVELIERE
Amelioration Coll...
|
145
146
|
compteur+=1;
CheckAlea+=1;
|
2fd95d7e
Martin CHAUVELIERE
1ere Version bis
|
147
148
149
|
}
return 0;
}
|