Advancing in endgamemenu loop

merge-requests/2/merge
marouault 4 years ago
parent e923900ba7
commit dec491cfbd

@ -2,7 +2,6 @@
#define FONT_UTILS_INCLUDED
#include <SDL2/SDL_ttf.h>
#include <string.h>
int calculateStringPixelLenght(TTF_Font* font, char* str);

@ -13,4 +13,7 @@ P_Button createButtonForEndGameMenu(SDL_Renderer* renderer, TTF_Font* font, cons
void drawEndGameMenu(SDL_Renderer* renderer, const Player players[], const size_t nbPlayers, const SDL_Rect* rect, FontHandler* fontHandler);
void endGameMenu(GeneralState* generalState, SDL_Window* window, SDL_Renderer* renderer, FontHandler* fontHandler, const Player players[], const size_t nbPlayers);
#endif // MENU_FIN_INCLUDED

@ -1,4 +1,5 @@
#include "engine/FontUtils.h"
#include <string.h>
int calculateStringPixelLenght(TTF_Font* font, char* str)
{

@ -27,7 +27,7 @@ void drawTitle(SDL_Renderer* renderer, const SDL_Rect* rect, FontHandler* fontHa
SDL_Point pos = {rect->x+rect->w/2, rect->y+rect->h/100};
SDL_Color color = {0,0,0,0};
TextLabel titre = createTextLabel("Scores", &pos, 2, &color, fontHandler->fonts[FONT_retro], renderer, POSX_CENTER, POSY_TOP);
TextLabel titre = createTextLabel("Scores", &pos, 4, &color, fontHandler->fonts[FONT_retro], renderer, POSX_CENTER, POSY_TOP);
drawTextLabel(renderer, &titre);
@ -101,24 +101,30 @@ void drawEndGameMenu(SDL_Renderer* renderer, const Player players[], const size_
drawPlayersScores(renderer, players, nbPlayers, rect, fontHandler);
}
void endGameMenu(GeneralState* generalState, SDL_Window* window, SDL_Renderer* renderer, const Player players[], const size_t nbPlayers) {
void endGameMenu(GeneralState* generalState, SDL_Window* window, SDL_Renderer* renderer, FontHandler* fontHandler, const Player players[], const size_t nbPlayers) {
InputProcessor inputProcessor = createInputProcessor();
//récupère le numéro de l'écran
SDL_DisplayMode current;
const int i = SDL_GetWindowDisplayIndex(window);
SDL_GetCurrentDisplayMode(i, &current); //retourne current, structure avec vrai valeurs de taille de fenêtre
int windowW;
int windowH;
SDL_Rect rectMenuEndGme = {.x=current.w/20, .y=0, .w=current.w*4/5, .h=current.h};
SDL_GetWindowSize(window, &windowW, &windowH);
SDL_Rect rectMenuEndGame = {
.x=windowW/10,
.y=0,
.w=windowW*80/100,
.h=windowH
};
array_P_Button_AddElement(&inputProcessor.tabButton, createButtonForEndGameMenu(renderer, fontHandler.fonts[FONT_retro], &rectMenuEndGme));
array_P_Button_AddElement(&inputProcessor.tabButton, createButtonForEndGameMenu(renderer, fontHandler->fonts[FONT_retro], &rectMenuEndGame));
P_Button* buttonMenuEndGame = array_P_Button_Last(&inputProcessor.tabButton);
buttonMenuEndGame->rect.y = rectMenuEndGame.h*8/10;
buttonMenuEndGame->rect.x = rectMenuEndGame.x + rectMenuEndGame.w/2-buttonMenuEndGame->rect.w/2;
SDL_Color color = {0,0,0,0};
drawEndGameMenu(renderer, players, nbPlayers, &rectMenuEndGme, &fontHandler);
drawEndGameMenu(renderer, players, nbPlayers, &rectMenuEndGame, fontHandler);
while(!quit)
while(*generalState == GS_EndOfGameMenu)
{
{
InputElement inputElement;
@ -130,7 +136,7 @@ void endGameMenu(GeneralState* generalState, SDL_Window* window, SDL_Renderer* r
switch (inputElement.data.uiAction)
{
case UIAction_Quit:
quit = true;
*generalState = GS_MainMenu;
break;
case UIAction_Validate:
break;

@ -10,8 +10,6 @@ void testMenuEndGame() {
SDL_Window *window = NULL;
SDL_Rect windowSize = {10, 10, 600, 600};
SDL_Renderer *renderer = NULL;
SDL_Texture* picture;
int statut = EXIT_FAILURE;
if(0 != SDL_Init(SDL_INIT_VIDEO))
{
@ -60,69 +58,20 @@ void testMenuEndGame() {
goto Quit;
}
bool quit = false;
FontHandler fontHandler = loadFonts();
SDL_RenderPresent(renderer);
InputProcessor inputProcessor = createInputProcessor();
SDL_Rect rectMenuEndGme = {.x=20, .y=0, .w=300, .h=480};
array_P_Button_AddElement(&inputProcessor.tabButton, createButtonForEndGameMenu(renderer, fontHandler.fonts[FONT_retro], &rectMenuEndGme));
P_Button* buttonMenuEndGame = array_P_Button_Last(&inputProcessor.tabButton);
GeneralState generalState = GS_EndOfGameMenu;
SDL_Color color = {0,0,0,0};
Player players[] = {newPlayer("Bépo", color), newPlayer("Azerty", color)};
Player players[2] = {newPlayer("Bépo", color), newPlayer("Azerty", color)};
players[0].eliminationTurn = 10;
players[1].eliminationTurn = 10;
players[0].rank = 1;
players[1].rank = 2;
drawEndGameMenu(renderer, players, 2, &rectMenuEndGme, &fontHandler);
while(!quit)
{
{
InputElement inputElement;
while (InputType_None != (inputElement = proccessInput(&inputProcessor)).type) {
switch (inputElement.type)
{
case InputType_ActivateUI:
switch (inputElement.data.uiAction)
{
case UIAction_Quit:
quit = true;
break;
case UIAction_Validate:
break;
case UIAction_Cancel:
break;
default:
break;
}
break;
case InputType_MoveGame:
break;
case InputType_ClickGame:
break;
case InputType_None:
default:
break;
}
}
}
drawButtonOnRenderer(renderer, buttonMenuEndGame);
SDL_RenderPresent(renderer);
SDL_Delay(50);
}
endGameMenu(&generalState, window, renderer, &fontHandler, players, 2);
Quit:
freeFonts(fontHandler);

Loading…
Cancel
Save