-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmaze.pde
177 lines (174 loc) · 5.39 KB
/
maze.pde
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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
//VARIABLES POSITIONS DU PIXELS D OR
int Xpixel = 410; //INITIALE
int Ypixel= 400;
int newX = 1000;//lorsqu'il est récupéré
int newY = 1000;
//Random maze
boolean RandomMaze = false;
int RandomMazeImg;
//VARIABLES BOOLEENES lorsqu'un joueur attrape le pixel d'or
int GoldenRed = 0;
int GoldenBlue = 0;
//variables de victoire//
boolean AceRed =false; // si joueur rouge Ace
boolean AceBlue =false;// si joueur bleu Ace
//boolean de victoire pour tous les mini jeux
boolean winRed = false;
boolean winBlue = false;
//boolean de reinitialisation go back to maze//
boolean goBackMaze = false;
void maze() {
chargement(2, 2);//chargement avec argument : vitesse = 2 et nombre de répétition = 3
explicationMze(); //explication des regles du maze
Xchargement = 265;//remettre chargement au milieu pendant le temps
if (go) {
maze=loadImage("maze/maze00"+RandomMazeImg+".JPG");
maze.loadPixels();
displayPlayers();
updatePixels();
GoldenPixel(); //invocation du pixel d'or
winAce();
//display les joueurs sur le jeu//
players[0].displayMaze(0, red); //invoke joueur rouge
players[1].displayMaze(1, blue); //invoke joueur bleu
//Collision entre les joueurs
GoldenCollide();
//déplacement des joueurs//
//joueur rouge
if (_up)players[0].moveUpMaze();
if (_down)players[0].moveDownMaze();
if (_left)players[0].moveLeftMaze();
if (_right)players[0].moveRightMaze();
//joueur bleu
if (_up2)players[1].moveUpMaze();
if (_down2)players[1].moveDownMaze();
if (_left2)players[1].moveLeftMaze();
if (_right2)players[1].moveRightMaze();
countChargement = 0;
displayMazePlayers = false;
RandomMaze = false;
//----------------------------
}
}
void GoldenPixel() {
fill (208, 187, 98);
rect (Xpixel, Ypixel, 15, 15);
noStroke();
//collision avec le pixels d'or et permet aux joueur de le récuprer
for (int i =0; i<2; i++) {
if (players[i].xpos +20 >= Xpixel &&
players[i].xpos <= Xpixel +15 &&
players[i].ypos +20 >= Ypixel &&
players[i].ypos <= Xpixel +15) {
Xpixel = newX;
Ypixel = newY;
if (i==0) {
players[0].dirX = 2;//le personnage rouge est ralenti
players[0].dirY = 2;
GoldenRed = 1;
//éventuellement changer la couleur du joueur si il recupère le pixel///
} else if (i == 1) {//le personnage bleu est ralenti
players[1].dirX = 2;
players[1].dirY = 2;
GoldenBlue = 1;
}
}
}
}
void winAce() {
//fonction qui s'applique seulement si un des deux joueurs récupère le pixel d'or et s'enfuit du Maze sans se faire
//attraper par l'autre
//condition pour gagner
//joueur rouge
if (GoldenRed == 1) {
if (players[0].xpos >= width || players[0].xpos <= 0 ||
players[0].ypos >= height || players[0].ypos <= 0) {
textFont(f);
fill(255, 0, 0);
go = false;
AceRed = true; // joueur rouge a gagné
GoldenRed = 0; //init again pour la partie suivante
}
}
//joueur bleu
if (GoldenBlue == 1) {
if (players[1].xpos >= width || players[1].xpos <= 0 ||
players[1].ypos >= height || players[1].ypos <= 0) {
textFont(f);
fill(0, 0, 255);
go = false;
AceBlue = true; // joueur bleu à gagné
GoldenBlue = 0;//init again pour la partie suivante
}
}
}
void GoldenCollide() { //Fonction qui s'active dans le cas ou le joueur bleu et rouge rentrent en collision apres avoir récupérer le pixel
if (GoldenRed ==1 || GoldenBlue == 1 ) {
if (players[0].xpos <= players[1].xpos+20 &&
players[0].xpos + 20 >= players[1].xpos &&
players[0].ypos <= players[1].ypos +20 &&
players[0].ypos + 20 >= players[1].ypos) {
runRandom = true;
fill(gold);
textFont(f);
go = false;
}
}
}
void GoBacktoMaze() { // fonction qui permet de reinitialiser les paramètres du jeu
//réinitialisation des valeurs présentes dans le labyrinthe
//vitesse dans le labyrinth//
//vitesse du joueur rouge//
players[0].dirX = 3;//le personnage rouge est ralenti
players[0].dirY = 3;
//vitesse du joueur bleu//
players[1].dirX = 5;
players[1].dirY = 5;
RandomMaze = true; // permet de changer de Maze a chaque fois qu'on y retourne//
GoldenRed = 0;
GoldenBlue = 0;
Xpixel = 410; //position du pixel d'or
Ypixel = 400;
//réinitialisation des valeurs présentes dans le Pong
winBlue = false; //victoire d'un des deux joueurs
winRed = false;
scoreB = 0;//leurs score
scoreR = 0;
xposBall = 400;//position de la balle remise au centre
yposBall = 400;
//réinitialisation du timer1
xposTimer = 900;
go = false;
go1 = false;
timerX = 395;
//réinitialisation du temps de chargement
countChargement = 0;
Xchargement = 265;
//reinit de la vitesse des joueurs dans le layrinthe
//rouge
players[0].dirX = 3;//le personnage rouge est ralenti
players[0].dirY = 3;
//bleu
players[1].dirX = 5;
players[1].dirY = 5;
//reinit position pour tous les jeux
displayMazePlayers =true;
displayPongPlayers = true;
displayDashPlayers = true;
displayFightPlayers = true;
//reinit obstcales
for (int i = 0; i <9; i++) {
obstacles[i].X = height/3;
obstacles[i].Y = height/3;
}
//reinit victory//
Ypodium = height/2;
Ypodium2 = height/2;
//--FIGHT---////
lifeRed = 300;
lifeBlue = 300;
energyRed = 0;
energyBlue = 0;
goBackMaze = false;
///////////////////
}