Started to integrate MenuInterface into GameMain + Cut menu_sound_effect.wav silence to make it end quicker so channels aren't overbooked

merge-requests/2/merge
marouault 3 years ago
parent 5d455b4cbc
commit f7c25903a8

@ -72,7 +72,7 @@ int main(int argc, char *argv[]) {
}*/ }*/
generalState = GS_Game; generalState = GS_Game;
gameView(&generalState, window, renderer, players, nbPlayers); gameView(&generalState, window, renderer, players, nbPlayers, &fontHandler);
endGameMenu(&generalState, window, renderer, &fontHandler, players, nbPlayers); endGameMenu(&generalState, window, renderer, &fontHandler, players, nbPlayers);
break; break;

@ -6,8 +6,8 @@
//#include "../test/testConnectionMenu.c" //#include "../test/testConnectionMenu.c"
//#include "../test/testDrawMainMenu.c //#include "../test/testDrawMainMenu.c
//#include "../test/testSettingsView.c" //#include "../test/testSettingsView.c"
#include "../test/testCreationMenu.c" //#include "../test/testCreationMenu.c"
//#include "../test/testGameInterface.c" #include "../test/testGameInterface.c"
//#include "../test/testConnectionMenu.c" //#include "../test/testConnectionMenu.c"
//#include "../test/testDrawMainMenu.c" //#include "../test/testDrawMainMenu.c"
//#include "../test/testSettingsView.c" //#include "../test/testSettingsView.c"
@ -26,10 +26,10 @@ int main(int argc, char *argv[]) {
//testConnectionMenu(); //testConnectionMenu();
//testMenuEndGame(); //testMenuEndGame();
//testButton(); //testButton();
//testGameInterface(); testGameInterface();
//testConnectionMenu(); //testConnectionMenu();
//testDrawMainMenu(); //testDrawMainMenu();
testCreationMenu(); //testCreationMenu();
//testSettingsView(); //testSettingsView();
return 0; return 0;

@ -11,7 +11,7 @@
#include <SDL2/SDL.h> #include <SDL2/SDL.h>
#include "engine/Button.h" #include "engine/Button.h"
#include <engine/FontLoader.h> #include <engine/FontLoader.h>
#include "engine/arrayButton.h"
//move pion //move pion
@ -33,6 +33,7 @@ void drawButtons(SDL_Renderer* renderer,FontHandler fontHandler);
//draw timer (bottom right corner) //draw timer (bottom right corner)
struct array_P_Button createGameInterfaceButtons(SDL_Renderer* renderer, FontHandler* fontHandler);
#endif #endif

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

@ -34,7 +34,7 @@ void copyTextIntoTextLabel(TextLabel* label, const char text[]) {
TextLabel createUnsizedTextLabel(const char text[], const SDL_Color* color, TTF_Font* font, SDL_Renderer* renderer) { TextLabel createUnsizedTextLabel(const char text[], const SDL_Color* color, TTF_Font* font, SDL_Renderer* renderer) {
TextLabel label = { TextLabel label = {
.color = color, .color = *color,
.texture = NULL .texture = NULL
}; };

@ -11,6 +11,26 @@ void action(P_Button* buttonCaller){
//changeButtonTexture(arg->buttonCaller,arg->texture); //changeButtonTexture(arg->buttonCaller,arg->texture);
} }
struct array_P_Button createGameInterfaceButtons(SDL_Renderer* renderer, FontHandler* fontHandler) {
SDL_Color menuBorderColor= {0,0,255,255};
SDL_Color menuBackgroundColor = {0,255,0,255};
int sizex=20,sizey=20;
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);
struct array_P_Button buttons = array_P_Button_Create();
// Menu
array_P_Button_AddElement(&buttons, createButton(menuButtonTexture, menuButtonHoverTexture,20,20,100,50,&action)); //top left corner (rectangle)
// Settings
array_P_Button_AddElement(&buttons, createButton(menuButtonTexture, menuButtonHoverTexture, 750,10,50,50,&action)); //top right corner (square or circle)
// Mute/Unmute
array_P_Button_AddElement(&buttons, createButton(menuButtonTexture, menuButtonHoverTexture, 825,10,50,50,&action)); //top right cornre (square or circle)
return buttons;
}
void drawButtons(SDL_Renderer* renderer, FontHandler fontHandler) void drawButtons(SDL_Renderer* renderer, FontHandler fontHandler)
{ {

@ -9,6 +9,7 @@
#include "view/PiecesDrawer.h" #include "view/PiecesDrawer.h"
#include "view/BoardDrawer.h" #include "view/BoardDrawer.h"
#include "view/GameDrawer.h" #include "view/GameDrawer.h"
#include "view/GameInterface.h"
#include "engine/UIElementUtils.h" #include "engine/UIElementUtils.h"
@ -30,7 +31,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) void gameView(GeneralState* generalState, SDL_Window* window, SDL_Renderer* renderer, Player players[], size_t nbPlayers, FontHandler* fontHandler)
{ {
if (*generalState != GS_Game) { if (*generalState != GS_Game) {
return; return;
@ -41,6 +42,7 @@ void gameView(GeneralState* generalState, SDL_Window* window, SDL_Renderer* rend
Game game = newGame(nbPlayers, players); Game game = newGame(nbPlayers, players);
TextureHandler textureHandler = newTextureHandler(renderer); TextureHandler textureHandler = newTextureHandler(renderer);
inputProcessor.tabButton = createGameInterfaceButtons(renderer, fontHandler);
SDL_Rect windowRect = {0,0,0,0}; SDL_Rect windowRect = {0,0,0,0};
SDL_GetWindowSize(window, &windowRect.w, &windowRect.h); SDL_GetWindowSize(window, &windowRect.w, &windowRect.h);
@ -49,7 +51,12 @@ void gameView(GeneralState* generalState, SDL_Window* window, SDL_Renderer* rend
SDL_Rect boardRect = adaptPosToRect(&boardRPositionSpecifier, &windowRect); SDL_Rect boardRect = adaptPosToRect(&boardRPositionSpecifier, &windowRect);
//Draw //Draw
SDL_SetRenderDrawColor(renderer, 50,10,10, SDL_ALPHA_OPAQUE);
SDL_RenderClear(renderer);
redrawGameBoard(renderer, game.arrPlayers, game.nbPlayers, &textureHandler, &boardRect, &game.board); redrawGameBoard(renderer, game.arrPlayers, game.nbPlayers, &textureHandler, &boardRect, &game.board);
for (size_t i=0; i<inputProcessor.tabButton.size; ++i) {
drawButtonOnRenderer(renderer, &inputProcessor.tabButton.elems[i]);
}
SDL_RenderPresent(renderer); SDL_RenderPresent(renderer);
@ -123,6 +130,10 @@ void gameView(GeneralState* generalState, SDL_Window* window, SDL_Renderer* rend
boardRect = adaptPosToRect(&boardRPositionSpecifier, &windowRect); boardRect = adaptPosToRect(&boardRPositionSpecifier, &windowRect);
redrawGameBoard(renderer, game.arrPlayers, game.nbPlayers, &textureHandler, &boardRect, &game.board); redrawGameBoard(renderer, game.arrPlayers, game.nbPlayers, &textureHandler, &boardRect, &game.board);
for (size_t i=0; i<inputProcessor.tabButton.size; ++i) {
drawButtonOnRenderer(renderer, &inputProcessor.tabButton.elems[i]);
}
SDL_RenderPresent(renderer); SDL_RenderPresent(renderer);
} }
case InputType_None: case InputType_None:

@ -55,20 +55,6 @@ P_Button createButtonForEndGameMenu(SDL_Renderer* renderer, TTF_Font* font, cons
return buttonMenuEndGame; return buttonMenuEndGame;
} }
/**
* @brief Draw title for End Game
*
* @param renderer The renderer where title will be drawn
* @param rect Rect in which the endGameMenu is drawn
* @param font Font used for title
*/
void drawTitle(SDL_Renderer* renderer, const SDL_Rect* rect, TTF_Font* font) {
/*drawTextLabel(renderer, &titre);
freeTextLabel(&titre);*/
}
/** /**
* @brief Draw Pseudo and rank for end game menu * @brief Draw Pseudo and rank for end game menu
* *
@ -142,8 +128,6 @@ void drawEndGameMenu(SDL_Renderer* renderer, const Player players[], const size_
SDL_SetRenderDrawColor(renderer, 220,220,220,255); SDL_SetRenderDrawColor(renderer, 220,220,220,255);
SDL_RenderFillRect(renderer, rect); SDL_RenderFillRect(renderer, rect);
drawTitle(renderer, rect, fontHandler->fonts[FONT_retro]);
drawPlayersScores(renderer, players, nbPlayers, rect, fontHandler->fonts[FONT_retro]); drawPlayersScores(renderer, players, nbPlayers, rect, fontHandler->fonts[FONT_retro]);
} }
@ -173,7 +157,7 @@ struct endGameMenuTextLabel createLabels(SDL_Renderer* renderer, const Player pl
array_TextLabel_AddElement(&labels.textLabels, createTitleLabel(renderer, fontHandler->fonts[FONT_retro])); array_TextLabel_AddElement(&labels.textLabels, createTitleLabel(renderer, fontHandler->fonts[FONT_retro]));
array_PositionSpecifier_AddElement(&labels.positionSpecifiers, getTitleRect100(&array_TextLabel_Last(&labels.textLabels)->textZone)); array_PositionSpecifier_AddElement(&labels.positionSpecifiers, getTitleRect100(&array_TextLabel_Last(&labels.textLabels)->textZone));
// Lignes de score
return labels; return labels;
} }
@ -200,6 +184,7 @@ void endGameMenu(GeneralState* generalState, SDL_Window* window, SDL_Renderer* r
.w = 30, .w = 30,
.h = 30*buttonMenuEndGame->rect.h/buttonMenuEndGame->rect.w .h = 30*buttonMenuEndGame->rect.h/buttonMenuEndGame->rect.w
}; };
PositionSpecifier positionSpecifierButtonRetour = newPositionSpecifier(&base100, POSX_CENTER, POSY_BOTTOM, ASPECT_KEEP_H);
drawEndGameMenu(renderer, players, nbPlayers, &rectMenuEndGame, fontHandler); drawEndGameMenu(renderer, players, nbPlayers, &rectMenuEndGame, fontHandler);
struct endGameMenuTextLabel labels = createLabels(renderer, players, nbPlayers, fontHandler); struct endGameMenuTextLabel labels = createLabels(renderer, players, nbPlayers, fontHandler);
@ -245,7 +230,9 @@ void endGameMenu(GeneralState* generalState, SDL_Window* window, SDL_Renderer* r
drawTextLabel(renderer, &labels.textLabels.elems[i]); drawTextLabel(renderer, &labels.textLabels.elems[i]);
} }
//buttonMenuEndGame->rect = adaptPosToRect(&base100, &rectM, POSX_CENTER, POSY_BOTTOM, ASPECT_KEEP_W); buttonMenuEndGame->rect = adaptPosToRect(&positionSpecifierButtonRetour, &rectM);
drawButtonOnRenderer(renderer, buttonMenuEndGame);
fprintf(stderr, "Resize\n"); fflush(stderr); fprintf(stderr, "Resize\n"); fflush(stderr);
} }
default: default:

Loading…
Cancel
Save