Skip to content
Snippets Groups Projects
Commit 9d6ab9ac authored by vautrin33u's avatar vautrin33u
Browse files

MaJ du menu

parent dcedd915
No related branches found
No related tags found
No related merge requests found
......@@ -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
Source diff could not be displayed: it is too large. Options to address this: view the blob.
......@@ -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;
}
}
}
}
menu.h 0 → 100644
/**
* \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
*
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment