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

master
thmaillarb 3 years ago
commit 38f7834a03

3
.gitignore vendored

@ -73,7 +73,8 @@ _deps
bin/
build_debug/
build_release/
buildDebug/
buildRelease/
Documentation/doxygen/

@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.13)
SET(PROJECT_NAME Pontu)
project(${PROJECT_NAME})
project(${PROJECT_NAME} C)
add_executable(${PROJECT_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/entryPoints/main.c)
add_executable(Test ${CMAKE_CURRENT_SOURCE_DIR}/entryPoints/test.c)

Binary file not shown.

@ -34,7 +34,7 @@ Game newGame(const size_t nbPlayers, const Player player[])
{
Game g = { // In Placement phase, the last player initialized is the 1st to play
.currentPlayerID = nbPlayers - 1,
.nb_rounds = 0,
.nb_rounds = 1,
.phase = PLACEMENT,
.board = newBoard(nbPlayers),
.nbPlayers = nbPlayers,

@ -45,26 +45,25 @@ struct array_P_Button createGameInterfaceButtons(SDL_Renderer* renderer, FontHan
struct array_TextLabel createGameInterfaceLabels(SDL_Renderer* renderer, FontHandler* fontHandler) {
//Postion text label
SDL_Point positonNbTurnLabel = {.x=60, .y=850};
SDL_Point positionNumberNbTurnLabel = {.x=100, .y=850};
SDL_Point positionTimeLablel = {.x=770, .y=850};
//Color labal
SDL_Color colorLabel = {0, 255, 0, 255};
//Position label
PositionX_Type positionX = POSX_CENTER;
PositionY_Type positionY = POSY_CENTER;
struct array_TextLabel labels = array_TextLabel_Create();
// Label : Nb Turn
TextLabel nbTurnLabel = createTextLabel("Turn : ",&positonNbTurnLabel,1,&colorLabel,fontHandler->fonts[FONT_retro],renderer,positionX,positionY);
TextLabel nbTurnLabel = createTextLabel("Turn : ",&positonNbTurnLabel,1,&colorLabel,fontHandler->fonts[FONT_retro],renderer,POSX_CENTER,POSY_CENTER);
// Label : Number -> Nb Turn
TextLabel NumbernbTurnLabel = createTextLabel("1",&positionNumberNbTurnLabel,1,&colorLabel,fontHandler->fonts[FONT_retro],renderer,POSX_CENTER,POSY_CENTER);
// Label : Time of the game
TextLabel timeLabel = createTextLabel("Time : ",&positionTimeLablel,1,&colorLabel,fontHandler->fonts[FONT_retro],renderer,positionX,positionY);
TextLabel timeLabel = createTextLabel("Time : ",&positionTimeLablel,1,&colorLabel,fontHandler->fonts[FONT_retro],renderer,POSX_CENTER,POSY_CENTER);
//Add TextLabel to the array
array_TextLabel_AddElement(&labels, nbTurnLabel);
array_TextLabel_AddElement(&labels, timeLabel);
array_TextLabel_AddElement(&labels,NumbernbTurnLabel);
return labels;

@ -65,8 +65,8 @@ void gameView(GeneralState* generalState, SDL_Window* window, SDL_Renderer* rend
for (size_t i=0; i<tabLabel.size; ++i){
drawTextLabel(renderer,&tabLabel.elems[i]);
}
SDL_RenderPresent(renderer);
bool needToPresent=true;
while(*generalState == GS_Game)
{
@ -96,7 +96,7 @@ void gameView(GeneralState* generalState, SDL_Window* window, SDL_Renderer* rend
{
case GameAction_MovePiece:
drawMovePiece(renderer, &boardRect, &inputElement.data.move.start, &inputElement.data.move.end, &textureHandler, game.arrPlayers[game.currentPlayerID].color);
SDL_RenderPresent(renderer);
needToPresent=true;
if (game.phase == GAME_ENDED) {
*generalState = GS_EndOfGameMenu;
}
@ -117,11 +117,11 @@ void gameView(GeneralState* generalState, SDL_Window* window, SDL_Renderer* rend
{
case GameAction_PlacePiece:
drawPlacePiece(renderer, &boardRect, &textureHandler, game.arrPlayers[(game.currentPlayerID<game.nbPlayers-1) ? game.currentPlayerID+1 : 0].color, &inputElement.data.coord);
SDL_RenderPresent(renderer);
needToPresent=true;
break;
case GameAction_RemoveBridge:
drawRemoveBridge(renderer, &boardRect, textureHandler.textures[TEXTURE_Water], &inputElement.data.coord);
SDL_RenderPresent(renderer);
needToPresent=true;
break;
}
@ -132,19 +132,20 @@ void gameView(GeneralState* generalState, SDL_Window* window, SDL_Renderer* rend
}
if(nbRounds != game.nb_rounds) //Redraw nbTurn if has changed
{
char newNbTurn[20];
TextLabel nbTurnTextLabel = tabLabel.elems[0]; //First element -> nbTurn label
sprintf(newNbTurn,"Turn : ",game.nb_rounds); //Concatenate Turn with nbTurn
replaceTextAndTextureOfTextLabel(renderer, &nbTurnTextLabel, fontHandler->fonts[FONT_retro], newNbTurn, &nbTurnTextLabel.color);
drawTextLabel(renderer,&nbTurnTextLabel);
//Nouv text label ->nbTurn (replace texture) => replaceTextAndTextureOfTextLabel
//Redraw text label
SDL_RenderPresent(renderer);
TextLabel nbTurnTextLabel = tabLabel.elems[2]; //Third element -> Number of nbTurn
sprintf(newNbTurn,"%d",game.nb_rounds); //Concatenate Turn with nbTurn
replaceTextAndTextureOfTextLabel(renderer, &nbTurnTextLabel, fontHandler->fonts[FONT_retro], newNbTurn, &nbTurnTextLabel.color);
SDL_SetRenderDrawColor(renderer, 50,10,10, SDL_ALPHA_OPAQUE);
SDL_RenderFillRect(renderer,&nbTurnTextLabel.textZone);
fprintf(stderr,"%s\n",nbTurnTextLabel.text);
drawTextLabel(renderer,&nbTurnTextLabel);
needToPresent=true;
}
}
break;
}
case InputType_Window_Resize: {
@ -159,7 +160,7 @@ void gameView(GeneralState* generalState, SDL_Window* window, SDL_Renderer* rend
for (size_t i=0; i<tabLabel.size; ++i){
drawTextLabel(renderer,&tabLabel.elems[i]);
}
SDL_RenderPresent(renderer);
needToPresent=true;
}
case InputType_None:
default:
@ -170,6 +171,11 @@ void gameView(GeneralState* generalState, SDL_Window* window, SDL_Renderer* rend
interactiveCases = getInteractiveCases(&game, inputProcessor.selectedCase);
}
if(needToPresent)
{
SDL_RenderPresent(renderer);
needToPresent=false;
}
SDL_Delay(5);
}

Loading…
Cancel
Save