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
39
|
int mort = 0;
int nbr_vie = 3;
|
0cc8564c
Martin CHAUVELIERE
Fin des colisions...
|
40
41
42
43
|
if (pagedemarrage() != 'j')
{
return 0;
}
|
66b129e5
Martin CHAUVELIERE
Collisions Sbires...
|
44
|
|
0cc8564c
Martin CHAUVELIERE
Fin des colisions...
|
45
|
//Bouble principale
|
590ac30b
Martin CHAUVELIERE
Debut Collision
|
46
|
while(input!='m')
|
2fd95d7e
Martin CHAUVELIERE
1ere Version bis
|
47
|
{
|
4d73f71e
Martin CHAUVELIERE
Principal du jeu ...
|
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
if (mort == 1)
{
nbr_vie-=1;
if (nbr_vie > 0)
{
pagemort(nbr_vie);
printf("%d \n",joueur.posx);
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
|
71
72
|
rectanglePlein(0,0,TailleX,TailleY,COULEUR_NOIR);
rectanglePlein(0,Sol,TailleX,2,COULEUR_VERT);
|
3ab4f73a
Martin CHAUVELIERE
Amelioration Coll...
|
73
|
|
4d73f71e
Martin CHAUVELIERE
Principal du jeu ...
|
74
75
76
|
afficherLutin(canon,Ljoueur->enti.posx - hitboxcanonL/2 + ErreurHitbox,Ljoueur->enti.posy);
AfficherSbire(sbire,hitboxsbireL,hitboxsbireH,enemies);
|
3ab4f73a
Martin CHAUVELIERE
Amelioration Coll...
|
77
|
if (DropAlea == 0)
|
0cc8564c
Martin CHAUVELIERE
Fin des colisions...
|
78
|
{
|
3ab4f73a
Martin CHAUVELIERE
Amelioration Coll...
|
79
|
DropAlea = rand() % 31 + 100;
|
0cc8564c
Martin CHAUVELIERE
Fin des colisions...
|
80
|
}
|
3ab4f73a
Martin CHAUVELIERE
Amelioration Coll...
|
81
82
83
84
85
86
87
|
if (CheckAlea == DropAlea)
{
MakeBombeDroppable(enemies,&bombes);
DropAlea=0;
CheckAlea=0;
}
|
590ac30b
Martin CHAUVELIERE
Debut Collision
|
88
|
input = touche();
|
4d73f71e
Martin CHAUVELIERE
Principal du jeu ...
|
89
|
action(&Ljoueur->enti,input,&tires);
|
590ac30b
Martin CHAUVELIERE
Debut Collision
|
90
|
|
3ab4f73a
Martin CHAUVELIERE
Amelioration Coll...
|
91
92
93
94
95
96
|
if (compteur==10)
{
DeplacementSbire(enemies,&SensVague,1);
compteur=0;
}
|
66b129e5
Martin CHAUVELIERE
Collisions Sbires...
|
97
|
DeplacementTire(missile,&tires);
|
3ab4f73a
Martin CHAUVELIERE
Amelioration Coll...
|
98
99
|
DeplacementBombe(bombe,&bombes);
|
0cc8564c
Martin CHAUVELIERE
Fin des colisions...
|
100
|
SupprimerEntitesEnCollision(&tires,hitboxmissileL,hitboxmissileH,&enemies,hitboxsbireL,hitboxsbireH);
|
4d73f71e
Martin CHAUVELIERE
Principal du jeu ...
|
101
102
103
104
105
106
|
if (SupprimerEntitesEnCollision(&bombes,hitboxbombeL,hitboxbombeH,&Ljoueur,hitboxcanonL,hitboxcanonH) == 1)
{
mort = 1;
majSurface();
SDL_Delay(200);
}
|
65adbf2e
Martin CHAUVELIERE
1ere Version tierce
|
107
|
|
2fd95d7e
Martin CHAUVELIERE
1ere Version bis
|
108
|
majSurface();
|
2fd95d7e
Martin CHAUVELIERE
1ere Version bis
|
109
|
SDL_Delay(20);
|
0cc8564c
Martin CHAUVELIERE
Fin des colisions...
|
110
|
|
3ab4f73a
Martin CHAUVELIERE
Amelioration Coll...
|
111
112
|
compteur+=1;
CheckAlea+=1;
|
2fd95d7e
Martin CHAUVELIERE
1ere Version bis
|
113
114
115
|
}
return 0;
}
|