136 lines
4.6 KiB
C
136 lines
4.6 KiB
C
#include <stdio.h>
|
|
#include <string.h>
|
|
#include <stdlib.h>
|
|
#include <graph.h>
|
|
#include "menu.h"
|
|
#include "main.h"
|
|
|
|
|
|
|
|
void afficherMenuPrincipal() {
|
|
ChargerImageFond("../img/menu_principal.png");
|
|
|
|
/* Affiche le bouton "Jouer" */
|
|
afficherBouton(67, 850, 367, 950, "Jouer", CouleurParComposante(0,151,178), CouleurParNom("black"), CouleurParNom("black"), 2);
|
|
|
|
/* Affiche le bouton "Quitter" */
|
|
afficherBouton(800, 850, 1100, 950, "Quitter", CouleurParComposante(0,151,178), CouleurParNom("black"), CouleurParNom("black"), 2);
|
|
}
|
|
|
|
void afficherMenuModesDeJeu() {
|
|
/* Affiche l'image de fond des modes de jeu */
|
|
ChargerImageFond("../img/modes_de_jeu.png");
|
|
|
|
/* Affiche les boutons des modes de jeu */
|
|
afficherBouton(38.7, 639.9, 280.3, 742.9, "Classique", CouleurParComposante(168, 116, 67), CouleurParNom("black"), CouleurParNom("black"), 2);
|
|
afficherBouton(332.6, 639.9, 574.2, 742.9, "MultiPommes", CouleurParComposante(168, 116, 67), CouleurParNom("black"), CouleurParNom("black"), 2);
|
|
afficherBouton(626.2, 639.9, 867.8, 742.9, "Obstacles", CouleurParComposante(168, 116, 67), CouleurParNom("black"), CouleurParNom("black"), 2);
|
|
afficherBouton(919.7, 639.9, 1161.3, 742.9, "Acceleration", CouleurParComposante(168, 116, 67), CouleurParNom("black"), CouleurParNom("black"), 2);
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void afficherMenuGameOver(void) {
|
|
/* Affiche l'image game over */
|
|
ChargerImageFond("../img/game_over.png");
|
|
}
|
|
|
|
|
|
int attendreChoixGameOver() {
|
|
int x, y;
|
|
|
|
while (1) {
|
|
if (SourisCliquee()) {
|
|
SourisPosition();
|
|
x = _X;
|
|
y = _Y;
|
|
|
|
/* Vérifie si le bouton "Menu Principal" est cliqué */
|
|
if (x >= 379 && x <= 830.7 && y >= 530.3 && y <= 670.1) {
|
|
EffacerEcran(CouleurParNom("white"));
|
|
menus(); /* Renvoie vers le menu principal" */
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
int attendreChoixModesDeJeu(){
|
|
int x, y;
|
|
|
|
while (1){
|
|
if(SourisCliquee()){
|
|
SourisPosition();
|
|
x = _X;
|
|
y = _Y;
|
|
|
|
/*Vérifie si le bouton n°1 est cliqué*/
|
|
if (x >= 38.7 && x <= 280.3 && y >= 639.9 && y <= 742.9) {
|
|
return 1; /*Renvoie le choix bouton n°1*/
|
|
}
|
|
|
|
/*Vérifie si le bouton n°2 est cliqué*/
|
|
if (x >= 332.6 && x <= 574.2 && y >= 639.9 && y <= 742.9) {
|
|
return 2; /*Renvoie le choix bouton n°2*/
|
|
}
|
|
|
|
/*Vérifie si le bouton n°3 est cliqué*/
|
|
if (x >= 626.2 && x <= 867.8 && y >= 639.9 && y <= 742.9) {
|
|
return 3; /*Renvoie le choix bouton n°3*/
|
|
}
|
|
|
|
/*Vérifie si le bouton n°4 est cliqué*/
|
|
if (x >= 919.7 && x <= 1161.3 && y >= 639.9 && y <= 742.9) {
|
|
return 4; /*Renvoie le choix bouton n°4*/
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
int attendreChoixMenu(){
|
|
int x, y;
|
|
|
|
while (1){
|
|
if (SourisCliquee()){
|
|
SourisPosition();
|
|
x = _X;
|
|
y = _Y;
|
|
|
|
/*Vérifie si le bouton "Jouer" est cliqué*/
|
|
if (x >= 67 && x <= 367 && y >= 850 && y <= 950) {
|
|
return 1; /*Renvoie le choix bouton "Jouer"*/
|
|
}
|
|
|
|
/*Vérifie si le bouton "Quitter" est cliqué*/
|
|
if (x >= 800 && x <= 1100 && y >= 850 && y <= 950) {
|
|
return 2; /*Renvoie le choix bouton "Quitter"*/
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
void afficherBouton(double x1, double y1, double x2, double y2, const char *texte, couleur arriere_plan, couleur bordure, couleur couleur_texte, int taille_texte) {
|
|
/* Copie la chaîne constante dans une nouvelle chaîne non constante */
|
|
char *texte_modifiable = malloc(strlen((const char *)texte) + 1);
|
|
strcpy(texte_modifiable, (const char *)texte);
|
|
|
|
/* Affiche le bouton avec la couleur d'arrière-plan spécifiée */
|
|
ChoisirCouleurDessin(arriere_plan);
|
|
RemplirRectangle(x1, y1, x2 - x1, y2 - y1);
|
|
|
|
/* Affiche la bordure avec la couleur spécifiée */
|
|
ChoisirCouleurDessin(bordure);
|
|
DessinerRectangle(x1, y1, x2 - x1, y2 - y1);
|
|
|
|
/* Affiche le texte centré sur le bouton avec la couleur de texte spécifiée */
|
|
ChoisirCouleurDessin(couleur_texte);
|
|
EcrireTexte((int)((x1 + x2) / 2 - TailleChaineEcran(texte_modifiable, taille_texte) / 2), (int)((y1 + y2) / 2 + TailleSupPolice(taille_texte) / 2), texte_modifiable, taille_texte);
|
|
|
|
/* Libère la mémoire allouée pour la copie de la chaîne */
|
|
free(texte_modifiable);
|
|
} |