-
Notifications
You must be signed in to change notification settings - Fork 1
/
LabyrintheGame.pde
95 lines (74 loc) · 2.57 KB
/
LabyrintheGame.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
import processing.sound.*;
// Générateur de Labyrinthe
// Jeu crée et développé par Benjamin Bernard-Bouissières
// Instanciation des variables globales
Player player;
String name = "BBB"; //Le nom du joueur
int niveau = 1;
ArrayList<AIPlayer> aiplayers = new ArrayList(); //liste des IAs
boolean ai = false; //Permet d'activer ou de désactiver les IAs
int nbCase = 2; //Nombre de case
float tailleX; //Taille largeur en pixel d'une case
float tailleY; //Taille hauteur en pixel d'une case
int start, timer; //Timer pour chronométré le joueur
Labyrinthe labyrinthe; //Le labyrinthe du jeu
int[][] matrice; //Matrice d'adjacence du jeu pour savoir si on a le droit de se déplacer sur une case ou non
int[][] grille; //Grille qui va nous servir pour la construction du labyrinthe
boolean overPlayer = false; //Pour savoir si la souris est au-dessus du joueur
boolean moving = false; //Lorsque le joueur est est en déplacement
boolean point = true; //Affichage des points de marquage du chemin du joueur
SoundFile music; //Musique de fond
boolean musicIsPlaying = true; //Permet de savoir si la musique est en train d'être joué ou non
JSONArray scores;
void setup() {
//Récupération des scores
scores = loadJSONArray("scores.json");
// Mise en place du terrain jeu
size(444,444);
surface.setResizable(true);
background(255);
// Calcul de la taille d'une case
tailleX = width/nbCase;
tailleY = height/nbCase;
// Création du Labyrtinthe
labyrinthe = new Labyrinthe();
// Création du joueur
player = new Player();
// Load a soundfile from the /data folder of the sketch and play it back
music = new SoundFile(this, "music.mp3");
if (musicIsPlaying) {
music.loop();
}
start = millis();
}
void draw() {
// Recalcul de la taille d'une case
tailleX = width/nbCase;
tailleY = height/nbCase;
//Fonction d'affichage du terrain de jeu
afficheTerrain();
// Mise à jour du joueur
player.update(); //Met à jour la position du joueur
if (ai) {
//Mise à jour des IAs
for (int i = 0; i < aiplayers.size(); i++) {
AIPlayer aiPlayer = aiplayers.get(i);
aiPlayer.update();
}
}
}
void afficheTerrain() {
background(255);
//Cases Départ Vert et Arrivée Rouge
noStroke();
fill(color(0,255,0));
rect(0, 0, tailleX, tailleY);
fill(color(255,0,0));
rect(width - tailleX, height - tailleY, tailleX, tailleY);
textSize(tailleY / 2);
// Information sur la case départ du niveau du labyrinthe
fill(0);
text(niveau, tailleX/3, tailleY - tailleY/3);
//Affichage du labyrinthe
labyrinthe.display();
}