Commit 9d6ab9ac authored by vautrin33u's avatar vautrin33u
Browse files

MaJ du menu

parent dcedd915
......@@ -5,8 +5,8 @@ LDFLAGS = `sdl2-config --cflags --libs` -lSDL2_ttf
INCLUDES = -I./SDL2_ttf
EXEC1 = main
EXEC2 = tests
SRC = gestion_fichiers.c sprite.c stocks.c interactions.c logique.c graphisme.c main.c
SRC2 = gestion_fichiers.c sprite.c stocks.c interactions.c logique.c graphisme.c tests.c
SRC = gestion_fichiers.c sprite.c stocks.c interactions.c menu.c logique.c graphisme.c main.c
SRC2 = gestion_fichiers.c sprite.c stocks.c interactions.c menu.c logique.c graphisme.c tests.c
OBJ = $(SRC:.c=.o)
OBJ2 = $(SRC2:.c=.o)
......
No preview for this file type
This diff is collapsed.
......@@ -11,9 +11,6 @@
#include "stocks.h"
/**
* @brief Interaction avec la poubelle
*
......
......@@ -289,4 +289,4 @@ int temps_restant (){
if (temps_restant <=0) temps_restant = 0;
}
return temps_restant;
}
}
\ No newline at end of file
......@@ -19,29 +19,7 @@
#include <string.h>
#include "interactions.h"
#include "limits.h"
struct world_s{
int gameover; /*!< Champ indiquant si l'on est à la fin du jeu */
int score; /*!< Champ du score de la partie en cours */
sprite_t joueur; /*!< Sprite du joueur */
sprite_t four; /*!< Sprite du four */
sprite_t frigo; /*< Sprite du frigo */
sprite_t lavabo; /*< Sprite du lavabo */
sprite_t envoi; /*< Sprite de la zone d'envoi */
sprite_t poubelle; /*< Sprite de la poubelle */
sprite_t comptoire[NB_COMPT_1]; /*< Tableau de sprite de comptoir */
stock_t etat_stocks; /*!< Structure gérant les stocks et le score*/
int compteur_plats; /*!< Nombre de plats étant sorti de l'écran */
int attente; /*!< Compte le nombre de tours avant la fin de la partie*/
char** map; /*!< tableau de caractère correspondant à l'état de la map actuel */
};
/**
* \brief Type qui correspond aux données du monde
*/
typedef struct world_s world_t;
#include "menu.h"
/**
......
......@@ -21,6 +21,7 @@ SDL_Init(SDL_INIT_VIDEO);
TTF_Init();
//création des divers composants
world_t world;
menu_t menu;
textures_t textures;
SDL_Window *windows;
SDL_Renderer *ecran;
......@@ -41,7 +42,10 @@ init_data(&world);
//Chargement des textures sur le renderer
ecran = SDL_CreateRenderer(windows, -1, SDL_RENDERER_ACCELERATED);
init_textures(ecran, &textures, font);
//menu d'entrée en jeu
//menu
init_menu(&menu);
menu_event(&evenements, &menu);
......
#include "SDL/SDL.h"
#include "SDL/SDL_image.h"
#include "SDL_ttf"
#include <string>
//Ecran
const int SCREEN_WIDTH = 640;
const int SCREEN_HEIGHT = 480;
//const int SCREEN_BPP = ??
//Surfaces
SDL_Surface *image = NULL;
SDL_Surface *screen = NULL;
SDL_Event event;
int main(int argc, char* args[]){
bool quit = false;
//coordonnées des cases "Nouvelle partie" et "Reprendre" (à définir)
int xc1, yc1, xc2, yc2;
int xd1, yd1, xd2, yd2;
//coordonnées de la souris
int x, y;
Uint32 boutons;
while(quit == false){
while(SDL_PollEvent(&event)){
if(event.type == SDL_QUIT){
quit = true;
clean_up();
return 0;
}
switch (event.type){
case SDL_MOUSEBUTTONDOWN{
//récupération des coordonnées de la souris
SDL_PumpEvents();
boutons = SDL_GetMouseState(&x,&y);
if(xc1<=x<=xc2 && yc1<=y<=yc2){
//nouvelle partie
}
if(xd1<=x<=xd2 && yd1<=y<=yd2){
//reprendre
}
}
}
}
}
évènements :
SDL_MOUSEMOTION
SDL_MOUSEBUTTONDOWN
SDL_MOUSEBUTTONUP
\ No newline at end of file
/**
* \file menu.c
* \brief Fonctions des fonctions gérant la logique du menu
* \author Guillaume Vautrin
* \version 1.0
* \date 30 Décembre 2020
*/
#include "menu.h"
void init_menu (menu_t *menu){
//initialise le menu
menu->gameover = 0;
menu->quitter_menu = 0;
menu->choix = 0;
}
void menu_event(SDL_Event *event, menu_t *menu, world_t *world){
//Gère les évenements liés au menu
while (menu->quitter_menu ==0){
SDL_WaitEvent(event);
switch(event->type){
case SDL_QUIT:
menu->gameover = 1;
menu->quitter_menu = 1;
break;
case SDL_KEYDOWN:
switch(event->key.keysym.sym){
case SDLK_ESCAPE:
//Si on appuie sur escape on quitte le jeu
menu->gameover = 1;
menu->quitter_menu = 1;
break;
case SDLK_UP:
//Déplacement dans les menus
menu->choix--;
if (menu->choix <0) menu->choix = 0;
break;
case SDLK_DOWN:
//Déplacement dans les menus
menu->choix++;
if (menu->choix >4) menu->choix = 4;
break;
case SDLK_SPACE:
//Valide le choix et on quitte le menu
menu->quitter_menu = 1;
break;
}
}
}
}
/**
* \file menu.h
* \brief Header des fonctions gérant la logique du menu
* \author Guillaume Vautrin
* \version 1.0
* \date 30 Décembre 2020
*/
#ifndef MENU_H
#define MENU_H
#include "menu.h"
#include "stocks.h"
struct menu_s{
int gameover; /*!< Champ indiquant si l'on est à la fin du jeu */
int quitter_menu; /*!< Champ indiquant si l'on sort du menu */
int choix; /*!< Champ indiquant le choix du joueur */
sprite_t texte; /*!< Sprite du joueur */
};
/**
* \brief Type qui correspond aux données du monde
*/
typedef struct menu_s menu_t;
/**
* @brief Initialise le menu
*
* @param menu structure du menu
*/
void init_menu (menu_t *menu);
/**
* @brief Gestion des évenements du menu
*
* @param event évenements issue du joueur
* @param menu structure du menu
*/
void menu_event(SDL_Event *event, menu_t *menu, world_t *world);
#endif
\ No newline at end of file
......@@ -25,14 +25,12 @@ struct sprite_s{
int cuisson; /*!< Etat de la cuisson*/
Uint32 debut_timer; /*!< garde en mémoire le début d'un event*/
};
/**
* \brief Type qui correspond au sprite
*/
typedef struct sprite_s sprite_t;
/**
* \brief La fonction initialise un sprite
* \param sprite pointeur vers le sprite à initialiser
......
......@@ -25,6 +25,26 @@ struct stock_s{
typedef struct stock_s stock_t;
struct world_s{
int gameover; /*!< Champ indiquant si l'on est à la fin du jeu */
int score; /*!< Champ du score de la partie en cours */
sprite_t joueur; /*!< Sprite du joueur */
sprite_t four; /*!< Sprite du four */
sprite_t frigo; /*< Sprite du frigo */
sprite_t lavabo; /*< Sprite du lavabo */
sprite_t envoi; /*< Sprite de la zone d'envoi */
sprite_t poubelle; /*< Sprite de la poubelle */
sprite_t comptoire[NB_COMPT_1]; /*< Tableau de sprite de comptoir */
stock_t etat_stocks; /*!< Structure gérant les stocks et le score*/
int compteur_plats; /*!< Nombre de plats étant sorti de l'écran */
int attente; /*!< Compte le nombre de tours avant la fin de la partie*/
char** map; /*!< tableau de caractère correspondant à l'état de la map actuel */
};
/**
* \brief Type qui correspond aux données du monde
*/
typedef struct world_s world_t;
/**
* @brief Initialise les stocks et l'état de complétion des burgers
*
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment