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;
gameView(&generalState, window, renderer, players, nbPlayers);
gameView(&generalState, window, renderer, players, nbPlayers, &fontHandler);
endGameMenu(&generalState, window, renderer, &fontHandler, players, nbPlayers);
break;

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

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

@ -4,7 +4,8 @@
#include "engine/GeneralState.h"
#include <SDL2/SDL.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

@ -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 label = {
.color = color,
.color = *color,
.texture = NULL
};

@ -11,6 +11,26 @@ void action(P_Button* buttonCaller){
//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)
{

@ -9,6 +9,7 @@
#include "view/PiecesDrawer.h"
#include "view/BoardDrawer.h"
#include "view/GameDrawer.h"
#include "view/GameInterface.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) {
return;
@ -41,6 +42,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);
SDL_Rect windowRect = {0,0,0,0};
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);
//Draw
SDL_SetRenderDrawColor(renderer, 50,10,10, SDL_ALPHA_OPAQUE);
SDL_RenderClear(renderer);
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);
@ -123,6 +130,10 @@ void gameView(GeneralState* generalState, SDL_Window* window, SDL_Renderer* rend
boardRect = adaptPosToRect(&boardRPositionSpecifier, &windowRect);
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);
}
case InputType_None:

@ -55,20 +55,6 @@ P_Button createButtonForEndGameMenu(SDL_Renderer* renderer, TTF_Font* font, cons
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
*
@ -142,8 +128,6 @@ void drawEndGameMenu(SDL_Renderer* renderer, const Player players[], const size_
SDL_SetRenderDrawColor(renderer, 220,220,220,255);
SDL_RenderFillRect(renderer, rect);
drawTitle(renderer, 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_PositionSpecifier_AddElement(&labels.positionSpecifiers, getTitleRect100(&array_TextLabel_Last(&labels.textLabels)->textZone));
// Lignes de score
return labels;
}
@ -200,6 +184,7 @@ void endGameMenu(GeneralState* generalState, SDL_Window* window, SDL_Renderer* r
.w = 30,
.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);
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]);
}
//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);
}
default:

Loading…
Cancel
Save