-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrun_interface.c
144 lines (129 loc) · 4.88 KB
/
run_interface.c
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
/* TITOUAN WATTELET */
/*------------------*/
/* LIBRAIRIES */
#include <stdlib.h>
#include <stdio.h>
#include <graph.h>
#include "run_animation.h"
#include "run_game.h"
#include "quit.h"
#include "wait.h"
#include "log.h"
#define DIM_BOUTONS_HAUTEUR 80 /*hauteur (en pixel), des boutons */
#define DIM_BOUTONS_LONGUEUR 258 /*longueur (en pxiel), des boutons */
#define BASE_POS_X 50 /*position x du menu des boutons */
#define BASE_POS_Y 325+0 /*position y du menu des boutons */
#define BOUTONS_POS_MAX_X 258 /*position x maximum des boutons */
#define B_JOUER_POS_MIN_Y 330+0 /*position y minimum du bouton "JOUER" */
#define B_JOUER_POS_MAX_Y 410+0 /*position y maximum du bouton "JOUER" */
#define B_QUITTER_POS_MIN_Y 430+0 /*position y minimum du bouton "QUITTER" */
#define B_QUITTER_POS_MAX_Y 510+0 /*position y maximum du bouton "QUITTER" */
typedef enum { clavier, souris } selecttype; /* Permet de différencier les modes "clavier" et "souris" */
void display_menu();
int run_interface(unsigned int interface) {
/* Interface 1 = Affichage du menu principal
Interface 2 = Lancement du jeu (Bouton Jouer)
Interface 3 = Affichage du menu options (Bouton Options)
Interface 4 = Affichage des règles (Bouton Règles)
Interface 5 = Quitte l'interface du jeu (Bouton Quitter)
*/
if ( (interface >= 0) && (interface <= 5) ) {
if (interface==1) {
display_menu();
}
else if (interface==2) {
printlog("load", "Ouverture de l'interface de jeu...");
select_game();
}
else if (interface==3) {
printlog("load", "Ouverture du menu options...");
}
else if (interface==4) {
printlog("load", "Ouverture des règles...");
}
else if (interface==5) {
printlog("load", "Fermeture du jeu en cours...");
quit();
}
}
else {
printlog("err", "L'interface demandé est introuvable.");
exit(1);
}
return EXIT_SUCCESS;
}
/*==================================================================*/
void display_menu() { /* Interface 1 */
unsigned short int res;
bool button_jouer_is_press;
bool button_options_is_press;
bool button_regles_is_press;
bool button_quit_is_press;
selecttype mode;
mode = souris;
button_jouer_is_press = false;
button_options_is_press = false;
button_regles_is_press = false;
button_quit_is_press = false;
printlog("success", "Menu principal ouvert.");
printlog("load", "Chargement de l'image de fond...");
ChargerImageFond("img/background/max-fieve-pixelsolaire.jpg");
printlog("success", "Image de fond (re)chargée.");
while (1) {
if (mode==souris) {
SourisPosition();
if (SourisCliquee() == 1) {
/* "JOUER" */
if ( ((_X >= ( BASE_POS_X + 5 ) ) && (_X <= ( ( BASE_POS_X + 5 ) + BOUTONS_POS_MAX_X ) )) && ((_Y >= B_JOUER_POS_MIN_Y ) && (_Y <= B_JOUER_POS_MAX_Y )) ) {
if (button_jouer_is_press == false) {
printlog("success", "Bouton \"Jouer\" utilisé.");
ChargerImage("img/button-play_push.png", ( BASE_POS_X + 5 ), B_JOUER_POS_MIN_Y, 0, 0, DIM_BOUTONS_LONGUEUR, DIM_BOUTONS_HAUTEUR);
run_animation(1);
res=run_interface(2);
if (res!=0) {
printlog("err", "Impossible de lancer l'interface de jeu.");
}
button_jouer_is_press = true;
wait(100);
button_jouer_is_press = false;
}
}
/* "QUITTER" */
if ( ((_X >= ( BASE_POS_X + 5 )) && (_X <= ( ( BASE_POS_X + 5 ) + BOUTONS_POS_MAX_X ) )) && ((_Y >= B_QUITTER_POS_MIN_Y ) && (_Y <= B_QUITTER_POS_MAX_Y )) ) {
if (button_quit_is_press == false) {
printlog("success", "Bouton \"Quitter\" utilisé.");
ChargerImage("img/button-quit_push.png" , ( BASE_POS_X + 5 ), B_QUITTER_POS_MIN_Y, 0, 0, DIM_BOUTONS_LONGUEUR, DIM_BOUTONS_HAUTEUR);
res=run_interface(5);
if (res!=0) {
printlog("err", "Impossible de fermer le jeu.");
}
else {
exit(0);
}
button_quit_is_press = true;
wait(100);
button_quit_is_press = false;
}
}
}
else {
/* "JOUER" */
if ( ((_X >= ( BASE_POS_X + 5 ) ) && (_X <= ( ( BASE_POS_X + 5 ) + BOUTONS_POS_MAX_X ) )) && ((_Y >= B_JOUER_POS_MIN_Y ) && (_Y <= B_JOUER_POS_MAX_Y )) ) {
ChargerImage("img/button-play_hover.png", ( BASE_POS_X + 5 ), B_JOUER_POS_MIN_Y, 0, 0, DIM_BOUTONS_LONGUEUR, DIM_BOUTONS_HAUTEUR);
}
else {
ChargerImage("img/button-play_normal.png" , ( BASE_POS_X + 5 ), B_JOUER_POS_MIN_Y , 0, 0, DIM_BOUTONS_LONGUEUR, DIM_BOUTONS_HAUTEUR);
}
/* "QUITTER" */
if ( ((_X >= ( BASE_POS_X + 5 )) && (_X <= ( ( BASE_POS_X + 5 ) + BOUTONS_POS_MAX_X ) )) && ((_Y >= B_QUITTER_POS_MIN_Y ) && (_Y <= B_QUITTER_POS_MAX_Y )) ) {
ChargerImage("img/button-quit_hover.png" , ( BASE_POS_X + 5 ), B_QUITTER_POS_MIN_Y, 0, 0, DIM_BOUTONS_LONGUEUR, DIM_BOUTONS_HAUTEUR);
}
else {
ChargerImage("img/button-quit_normal.png" , ( BASE_POS_X + 5 ), B_QUITTER_POS_MIN_Y, 0, 0, DIM_BOUTONS_LONGUEUR, DIM_BOUTONS_HAUTEUR);
}
}
}
if (mode==clavier) {
}
}
}