Merge branch 'master' of gitlab.iut-clermont.uca.fr:maribemont/projet-tut

maribemont/settings^2
thmaillarb 3 years ago
commit b5c3e33241

@ -86,7 +86,7 @@ int main(int argc, char *argv[]) {
}*/
//generalState = GS_Game;
gameView(&generalState, window, renderer, players, nbPlayers, &fontHandler);
gameView(&generalState, window, renderer, players, nbPlayers, &fontHandler,audioHandler);
//Pour tester le endGameMenu directement
/*

@ -10,9 +10,14 @@ void action_print(P_Button* caller);
/**
* @brief Button handle which set a generalState to GS_MainMenu
*
* @param caller The button clicked
*/
void action_setStateToMainMenu(P_Button* caller);
/**
* @brief Button handle wich mute the sound
* @param caller The button clicked
*/
void action_muteSound(P_Button* caller);
#endif //BUTTON_ACTION_INCLUDED

@ -13,21 +13,16 @@
#include <engine/FontLoader.h>
#include "engine/arrayButton.h"
#include "engine/GeneralState.h"
#include "engine/AudioHandler.h"
/**
* \brief Draw different buttons on the game interface : menu, setting, sound, nbTurn, and timers
* param Renderer
*/
void drawButtons(SDL_Renderer* renderer,FontHandler fontHandler);
/**
* \brief Create an array of P_Button for the game interface
* \param renderer The renderer on which we create P_buttons
* \param fontHandler The fontHandler to apply
* \return an array of P_Button to draw on the renderer
*/
struct array_P_Button createGameInterfaceButtons(SDL_Renderer* renderer, FontHandler* fontHandler, GeneralState* generalState);
struct array_P_Button createGameInterfaceButtons(SDL_Renderer* renderer, FontHandler* fontHandler, GeneralState* generalState, AudioHandler audioHandler);
/**

@ -5,7 +5,8 @@
#include <SDL2/SDL.h>
#include "model/Player.h"
#include "engine/FontLoader.h"
#include "engine/AudioHandler.h"
void gameView(GeneralState* generalState, SDL_Window* window, SDL_Renderer* renderer, Player players[], size_t nbPlayers, FontHandler* fontHandler);
void gameView(GeneralState* generalState, SDL_Window* window, SDL_Renderer* renderer, Player players[], size_t nbPlayers, FontHandler* fontHandler, AudioHandler audioHandler);
#endif //GAME_MAIN_INCLUDED

@ -1,5 +1,6 @@
#include "engine/ButtonActions.h"
#include "engine/GeneralState.h"
#include "engine/AudioHandler.h"
void action_none(P_Button* caller) {
@ -14,3 +15,9 @@ void action_setStateToMainMenu(P_Button* caller)
{
*((GeneralState*)caller->arg) = GS_MainMenu;
}
void action_muteSound(P_Button* caller)
{
//Mute sound -> Master Volume = 0
changeMasterVol((AudioHandler*)caller->arg,0);
}

@ -7,7 +7,9 @@
#include <engine/arrayTextLabel.h>
#include <engine/ButtonActions.h>
struct array_P_Button createGameInterfaceButtons(SDL_Renderer* renderer, FontHandler* fontHandler, GeneralState* generalState) {
struct array_P_Button createGameInterfaceButtons(SDL_Renderer* renderer, FontHandler* fontHandler, GeneralState* generalState, AudioHandler audioHandler) {
SDL_Color menuBorderColor= {0,0,255,255};
SDL_Color menuBackgroundColor = {0,255,0,255};
//SDL_Color menuBackgroundColor = {0,0,255,255};
@ -31,10 +33,13 @@ struct array_P_Button createGameInterfaceButtons(SDL_Renderer* renderer, FontHan
// Menu
array_P_Button_AddElement(&buttons, createButton(menuButtonTexture, menuButtonHoverTexture,20,20,100,50,&action_setStateToMainMenu)); //top left corner (rectangle)
array_P_Button_Last(&buttons)->arg = (void*)generalState;
// Settings
array_P_Button_AddElement(&buttons, createButton(settingsButtonTexture, settingsButtonHoverTexture, 750,10,50,50,&action_print)); //top right corner (square or circle)
// Mute/Unmute
array_P_Button_AddElement(&buttons, createButton(muteButtonTexture, muteButtonHoverTexture, 825,10,50,50,&action_print)); //top right cornre (square or circle)
array_P_Button_AddElement(&buttons, createButton(muteButtonTexture, muteButtonHoverTexture, 825,10,50,50,&action_muteSound)); //top right cornre (square or circle)
//array_P_Button_Last(&buttons)->arg = (void*)audioHandler;
return buttons;
}
@ -68,123 +73,3 @@ struct array_TextLabel createGameInterfaceLabels(SDL_Renderer* renderer, FontHan
}
void drawButtons(SDL_Renderer* renderer, FontHandler fontHandler)
{
//DRAW MENU BUTTON (TOP RIGHT CORNER)
SDL_bool quit = SDL_FALSE;
SDL_Event event;
int sizex=20,sizey=20;
/*
if(TTF_Init() == -1)
{
fprintf(stderr, "Erreur d'inistialisation de TTF_Init : %s\n", TTF_GetError());
exit(EXIT_FAILURE);
}
TTF_Font* retroFont = NULL;
//load ttf
int fontSize = 100;
int size = fontSize*100/88;
retroFont=TTF_OpenFont("rsrc/font/retro/retro.TTF", size);
if(!retroFont) {
printf("TTF_OpenFont: %s\n", TTF_GetError());
// handle error
}
*/
//FontHandler fontHandler=loadFonts();
//Menu Button's colors
SDL_Color menuBorderColor= {0,0,255,255};
SDL_Color menuBackgroundColor = {0,255,0,255};
//Postion text label
SDL_Point positonNbTurnLabel = {.x=60, .y=800};
SDL_Point positionTimeLablel = {.x=770, .y=800};
//Color labal
SDL_Color colorLabel = {0, 255, 0, 255};
//Position label
PositionX_Type positionX = POSX_CENTER;
PositionY_Type positionY = POSY_CENTER;
//SDL_Texture *buttonTexture = createGenericButtonTexture("Menu", NULL, 125, menuBorderColor,menuBackgroundColor,24,5,&sizex,&sizey,renderer);
SDL_Texture *menuButtonTexture = createGenericButtonTexture("Menu", fontHandler.fonts[FONT_retro], 125, menuBorderColor,menuBorderColor,24,5,&sizex,&sizey,renderer);
SDL_Texture *menuButtonHoverTexture = createGenericButtonTexture("MenuHover", fontHandler.fonts[FONT_retro], 125, menuBorderColor,menuBackgroundColor,24,5,&sizex,&sizey,renderer);
//Buttons
P_Button menuButton = createButton(menuButtonTexture, menuButtonHoverTexture,20,20,100,50,&action_print); //top left corner (rectangle)
P_Button settingButton = createButton(menuButtonTexture, menuButtonHoverTexture, 750,10,50,50,&action_print); //top right corner (square or circle)
P_Button soundButton = createButton(menuButtonTexture, menuButtonHoverTexture, 825,10,50,50,&action_print); //top right cornre (square or circle)
//Labels
TextLabel nbTurnLabel = createTextLabel("Turn : ",&positonNbTurnLabel,1,&colorLabel,fontHandler.fonts[FONT_retro],renderer,positionX,positionY);
TextLabel timeLabel = createTextLabel("Time : ",&positionTimeLablel,1,&colorLabel,fontHandler.fonts[FONT_retro],renderer,positionX,positionY);
//bool drawButtonOnRenderer(SDL_Renderer* renderer, P_Button* button);
//P_Button createButton(SDL_Texture* texture, SDL_Texture* hoverTexture ,const int coordx, const int coordy, const int sizex, const int sizey, void (*onClick)(P_ButtonArg* arg));
//Create Button Texture
//SDL_Texture* createGenericButtonTexture(char* text, TTF_Font* font, int fontSize, SDL_Color border_color, SDL_Color background_color,int thickness, int padding, int* sizex, int* sizey, SDL_Renderer* renderer);
SDL_Texture* violetTexture = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_RGBA8888,SDL_TEXTUREACCESS_TARGET,20,20);
SDL_SetRenderDrawColor(renderer, 150,75,200,255);
SDL_SetRenderTarget(renderer, violetTexture);
//SDL_RenderFillRect(renderer, &buttonRect);
SDL_SetRenderDrawColor(renderer,255,0,0,0);
SDL_SetRenderTarget(renderer, NULL);
SDL_RenderClear(renderer);
while(!quit)
{
while(SDL_PollEvent(&event))
{
switch(event.type)
{
case SDL_QUIT:
quit = SDL_TRUE;
break;
case SDL_MOUSEBUTTONUP:
//if(isHover(&menuButton,event.button.x,event.button.y))
if(isHover(&menuButton))
menuButton.onClick(&menuButton);
break;
case SDL_MOUSEMOTION:
//on vérifie à chaque tour ou est la souris, drawButtonOnRenderer choisit la bonne texture à afficher
//isHover(&menuButton,event.motion.x,event.motion.y);
isHover(&menuButton);
break;
}
}
drawButtonOnRenderer(renderer,&menuButton);
drawButtonOnRenderer(renderer,&settingButton);
drawButtonOnRenderer(renderer,&soundButton);
drawTextLabel(renderer,&nbTurnLabel);
drawTextLabel(renderer,&timeLabel);
SDL_RenderPresent(renderer);
SDL_Delay(20);
}
}

@ -33,7 +33,7 @@ void redrawGameBoard(SDL_Renderer* renderer, const Player players[], const size_
}
}
void gameView(GeneralState* generalState, SDL_Window* window, SDL_Renderer* renderer, Player players[], size_t nbPlayers, FontHandler* fontHandler)
void gameView(GeneralState* generalState, SDL_Window* window, SDL_Renderer* renderer, Player players[], size_t nbPlayers, FontHandler* fontHandler, AudioHandler audioHandler)
{
if (*generalState != GS_Game) {
return;
@ -44,7 +44,7 @@ void gameView(GeneralState* generalState, SDL_Window* window, SDL_Renderer* rend
Game game = newGame(nbPlayers, players);
TextureHandler textureHandler = newTextureHandler(renderer);
inputProcessor.tabButton = createGameInterfaceButtons(renderer, fontHandler, generalState);
inputProcessor.tabButton = createGameInterfaceButtons(renderer, fontHandler, generalState,audioHandler);
struct array_TextLabel tabLabel = createGameInterfaceLabels(renderer,fontHandler);

@ -65,7 +65,6 @@ P_Button* drawMainMenu(SDL_Renderer* renderer,const FontHandler fontHandler, uns
SDL_SetRenderTarget(renderer,NULL);
SDL_RenderPresent(renderer);
return buttons;
}

Loading…
Cancel
Save