From 718fdee338fc82797f1ce9922081a3a653aad83e Mon Sep 17 00:00:00 2001 From: marouault Date: Wed, 15 Dec 2021 23:16:31 +0100 Subject: [PATCH] Added a Texture handler (care MACROS (ask me if you want explainations)), First version of game's sprites and drawBoard completed for now --- .../Sprites/objetJeu.kra | Bin 0 -> 54226 bytes .../Sprites/objetJeu.kra~ | Bin 0 -> 54006 bytes Pontu/entryPoints/main.c | 15 ++++-- Pontu/include/engine/TextureHandler.h | 32 ++++++++++++ Pontu/include/view/BoardDrawer.h | 2 +- Pontu/rsrc/img/Bridge.png | Bin 0 -> 535 bytes Pontu/rsrc/img/Island.png | Bin 0 -> 598 bytes Pontu/rsrc/img/Piece.png | Bin 0 -> 624 bytes Pontu/rsrc/img/Water.png | Bin 0 -> 512 bytes Pontu/src/engine/Button.c | 3 ++ Pontu/src/engine/TextureHandler.c | 33 ++++++++++++ Pontu/src/view/BoardDrawer.c | 48 +++++++++++++++++- 12 files changed, 128 insertions(+), 5 deletions(-) create mode 100644 FichiersCreationRessource/Sprites/objetJeu.kra create mode 100644 FichiersCreationRessource/Sprites/objetJeu.kra~ create mode 100644 Pontu/include/engine/TextureHandler.h create mode 100644 Pontu/rsrc/img/Bridge.png create mode 100644 Pontu/rsrc/img/Island.png create mode 100644 Pontu/rsrc/img/Piece.png create mode 100644 Pontu/rsrc/img/Water.png create mode 100644 Pontu/src/engine/TextureHandler.c diff --git a/FichiersCreationRessource/Sprites/objetJeu.kra b/FichiersCreationRessource/Sprites/objetJeu.kra new file mode 100644 index 0000000000000000000000000000000000000000..162e88d1e9a83b69b68a0f33bba49bad37e7a803 GIT binary patch literal 54226 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 literal 0 HcmV?d00001 diff --git a/Pontu/entryPoints/main.c b/Pontu/entryPoints/main.c index 3320b8f..fe745d8 100644 --- a/Pontu/entryPoints/main.c +++ b/Pontu/entryPoints/main.c @@ -3,6 +3,9 @@ #include #include "engine/InputProcessor.h" #include "engine/InputElement.h" +#include "engine/TextureHandler.h" +#include "model/Game.h" +#include "view/BoardDrawer.h" int main(int argc, char* argv[]) { @@ -31,14 +34,18 @@ int main(int argc, char* argv[]) } InputProcessor inputProcessor = {.selectedCase = {.x=-1, .y=-1}}; - SDL_Rect rectBoard = {.x=20, .y=20, .w=99, .h=99}; + SDL_Rect boardRect = {.x=20, .y=20, .w=99*3, .h=99*3}; + const char* pseudos[] = {"Azerty","Bépo"}; + Game game = newGame(2, pseudos); + TextureHandler textureHandler = newTextureHandler(renderer); + bool quit = false; while(!quit) { // Event handling InputElement inputElement; - while (InputType_None != (inputElement = proccessInput(&inputProcessor, &rectBoard)).type) { + while (InputType_None != (inputElement = proccessInput(&inputProcessor, &boardRect)).type) { switch (inputElement.type) { @@ -70,7 +77,7 @@ int main(int argc, char* argv[]) // Drawing - + drawBoard(renderer, &boardRect, &game.board, textureHandler.textures[TEXTURE_Island], textureHandler.textures[TEXTURE_Bridge], textureHandler.textures[TEXTURE_Water]); SDL_RenderPresent(renderer); @@ -80,12 +87,14 @@ int main(int argc, char* argv[]) statut = EXIT_SUCCESS; Quit: + freeTextureHandler(&textureHandler); if(renderer != NULL) { SDL_DestroyRenderer(renderer); } if(window != NULL) { SDL_DestroyWindow(window); } + SDL_Quit(); return statut; } \ No newline at end of file diff --git a/Pontu/include/engine/TextureHandler.h b/Pontu/include/engine/TextureHandler.h new file mode 100644 index 0000000..f1e5f96 --- /dev/null +++ b/Pontu/include/engine/TextureHandler.h @@ -0,0 +1,32 @@ +#ifndef TEXTURE_HANDLER_INCLUDED +#define TEXTURE_HANDLER_INCLUDED + +#include +#include +#include "engine/TextureLoader.h" + +#define MACRO_FOR_ALL_TEXTURES(M) \ + M(Island) \ + M(Bridge) \ + M(Piece) \ + M(Water) + +#define MACRO_IDENTITY_COMMA(E) TEXTURE_##E, + +typedef enum +{ + MACRO_FOR_ALL_TEXTURES(MACRO_IDENTITY_COMMA) + NB_TEXTURES_DEFINED +} EnumTextures; + + +typedef struct +{ + SDL_Texture* textures[NB_TEXTURES_DEFINED]; +} TextureHandler; + +TextureHandler newTextureHandler(SDL_Renderer* renderer); + +void freeTextureHandler(TextureHandler* textureHandler); + +#endif // TEXTURE_HANDLER_INCLUDED \ No newline at end of file diff --git a/Pontu/include/view/BoardDrawer.h b/Pontu/include/view/BoardDrawer.h index d25299f..8781af4 100644 --- a/Pontu/include/view/BoardDrawer.h +++ b/Pontu/include/view/BoardDrawer.h @@ -5,7 +5,7 @@ #include #include "model/Board.h" -bool drawBoard(SDL_Renderer* renderer, const SDL_Rect* boardRect, const Board* board, SDL_Texture* island, SDL_Texture* bridge); +bool drawBoard(SDL_Renderer* renderer, const SDL_Rect* boardRect, const Board* board, SDL_Texture* island, SDL_Texture* bridge, SDL_Texture* water); #endif diff --git a/Pontu/rsrc/img/Bridge.png b/Pontu/rsrc/img/Bridge.png new file mode 100644 index 0000000000000000000000000000000000000000..8a472bab23c480a89b5826b4cc2804b986ff3bc2 GIT binary patch literal 535 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=hEVFy?1EI|pPYCo?c;Oe~#f?ak~c z(z;*8%SBnUMj>gU(@`bHK!J^uIF@ya88!vZPWdeKDWXhRQkGTY3FnL< zTb{d`*K)y!-b=}*b)j=seO#WTEHjIF_p6tle;?kEzjnzjtiq?lVzy@1*Uu|v?-1Jg zRCQ&uQM&=B;DP>j30Jcd0SDAg)n}T1?+vf*esXm2$@t|hihUxPAFEt-y{@-hS@MGO zr_q#z~lxI~Use z5A5X?zs{?>jeoke!G|U8y&0iJC$^|h{!qtvSMbHo=5t%4!oHTClT+NI>R-am-fp1v z`|j)gHbxn0Wt|F-fib{Y;1OBOz@VoL!i*J5?aP3Iex5FlArbD$2@07lyv@IM})$qb&ZelF{r5}E)7QQ*n| literal 0 HcmV?d00001 diff --git a/Pontu/rsrc/img/Island.png b/Pontu/rsrc/img/Island.png new file mode 100644 index 0000000000000000000000000000000000000000..f4cae6da00d782e06f832abc115dd7b6057c69f4 GIT binary patch literal 598 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=hEVFy?1EI|pPYCo?c;Oe~#f?ak~c z(z;*8%SBnUMj>gU(@`bHK!J^uIF@ya88!vZPWdeKDWXhRQkGTY3FnL< zTb{d`*K)y!-b=}*b)j=seO#WTEHjIF_p6tle;?kEzjnzjtiq?lVzy@1*Uu|v?-1Jg zRCQ&uQM&=B;DP>j30Jcd0SDAg)n}T1?+vf*esXm2$@t|hihUxPAFEt-y{@-hS@MGO zr_q#z~lxI~Use z5A5X?zs{?>jeoke!G|U8y&0iJC$^|h{!qtvSMbHo=5t%4!oHTClT+NI>R-am-fp1v z`|j)gHbxn0Wt|F-fib{Y;1OBOz@VoL!i*J5?aP3Iy`CgkSm3|Y}VdD^?2AMh>Mdi2H~{vsaXn~7ekz0HRinFarBU`YA%--k6@ zZ$S`;ut{2h3!`KDrGSGO96fCZ(1-)=4C~~$d8Hi-7C-#k)L3%lfIFjYlhl0K=Hq5gB-jcz76A*< z##iA#&{nWj5ClaKvGEW1Y9y?8l0Za~S!VCYnK_r4Ghh#9w5-`S4%uA62nGC}mB^~c z`GyNOee^RE)l7Y1X+BKL@%?~J)q9`n)p}pk(G^da8rV97r!?It2+s-!Hw(JrUEy9W z9gPbg3wsSYpzw{-V>NzNoT~AsVj~=y1H0ilhcF2dz>kL*MK;J#z$Y~)nKk!~SAC1*#iPkzr-UJn6lw8#MJ-C#gw&+y3HdUV zRPO)tG?SAPweBuIw7*!^#|Sw0pi;K1pA*ZfoPy&Su5t~3UUHiL6208ehL6C#4Hwr9 zEw&GrJ23F1M~!Gza>%qNlkk2H-4W=ygU+>DR`qqx9wEFXPjm|hhcGJp-Rr+RGH51t zi6G+u000SaNLh0L04^f{04^f|c%?sf0001|NklmesoW&RlK8STe+lW8xNpsvll;Q}Nz>q5gB-jcz76A*< z##iA#&{nWj5ClaKvGEW1Y9y?8l0Za~S!VCYnK_r4Ghh#9w5-`S4%uA62nGC}mB^~c z`GyNOee^RE)l7Y1X+BKL@%?~J)q9`n)p}pk(G^da8rV97r!?It2+s-!Hw(JrUEy9W z9gPbg3wsSYpzw{-V>NzNoT~AsVj~=y1H0ilhcF2dz>kL*MK;J#z$Y~)nKk!~SAC1*#iPkzr-UJn6lw8#MJ-C#gw&+y3HdUV zRPO)tG?SAPweBuIw7*!^#|Sw0pi;K1pA*ZfoPy&Su5t~3UUHiL6208ehL6C#4Hwr9 zEw&GrJ23F1M~!Gza>%qNlkk2H-4W=ygU+>DR`qqx9wEFXPjm|hhcGJp-Rr+RGH51t zi6G+u000SaNLh0L04^f{04^f|c%?sf0000tNkldrawn = true; + return true; } bool isHover(P_Button* button,const int x,const int y) @@ -41,6 +42,7 @@ bool changeButtonTexture(P_Button* button, SDL_Texture* texture) return false; } button->texture = texture; + return true; } bool changeButtonHoverTexture(P_Button* button, SDL_Texture* texture) @@ -50,4 +52,5 @@ bool changeButtonHoverTexture(P_Button* button, SDL_Texture* texture) return false; } button->hoverTexture = texture; + return true; } diff --git a/Pontu/src/engine/TextureHandler.c b/Pontu/src/engine/TextureHandler.c new file mode 100644 index 0000000..84762c3 --- /dev/null +++ b/Pontu/src/engine/TextureHandler.c @@ -0,0 +1,33 @@ +#include "engine/TextureHandler.h" + +#define MACRO_TO_TEXTURE_NAME(N) #N".png", + +const char* texturesNames[] = { + MACRO_FOR_ALL_TEXTURES(MACRO_TO_TEXTURE_NAME) +}; + +TextureHandler newTextureHandler(SDL_Renderer* renderer) { + TextureHandler tH; + + const char directoryPath[] = "rsrc/img/"; + + fprintf(stderr, "Nb textures %d\n", NB_TEXTURES_DEFINED); + + for (size_t i = 0; itextures[i] != NULL) { + SDL_DestroyTexture(textureHandler->textures[i]); + textureHandler->textures[i] = NULL; + } + } +} \ No newline at end of file diff --git a/Pontu/src/view/BoardDrawer.c b/Pontu/src/view/BoardDrawer.c index b83e018..848f57e 100644 --- a/Pontu/src/view/BoardDrawer.c +++ b/Pontu/src/view/BoardDrawer.c @@ -1,9 +1,55 @@ #include "view/BoardDrawer.h" +#include "model/Game.h" -bool drawBoard(SDL_Renderer* renderer, const SDL_Rect* boardRect, const Board* board, SDL_Texture* island, SDL_Texture* bridge) +bool drawBoard(SDL_Renderer* renderer, const SDL_Rect* boardRect, const Board* board, SDL_Texture* island, SDL_Texture* bridge, SDL_Texture* water) { int h = boardRect->h / 9; int w = boardRect->w / 9; + SDL_RenderCopy(renderer, water, NULL, boardRect); +//Islands + for (int y=0; y<9; y+=2) { + for (int x=0; x<9; x+=2) { + const SDL_Rect destRect = { + .x = boardRect->x+x*w, + .y = boardRect->y+y*h, + .w = w, + .h = h, + }; + SDL_RenderCopy(renderer, island, NULL, &destRect); + } + } + + //HBridge + for (int y=0; y<5; ++y) { + for (int x=0; x<4; ++x) { + if (board->hBridges[y][x]) { + const SDL_Rect destRect = { + .x = boardRect->x+w+x*w*2, + .y = boardRect->y+y*h*2, + .w = w, + .h = h, + }; + SDL_RenderCopy(renderer, bridge, NULL, &destRect); + } + } + } + + //HBridge + for (int y=0; y<4; ++y) { + for (int x=0; x<5; ++x) { + if (board->vBridges[y][x]) { + const SDL_Rect destRect = { + .x = boardRect->x+x*w*2, + .y = boardRect->y+h+y*h*2, + .w = w, + .h = h, + }; + SDL_RenderCopyEx(renderer, bridge, NULL, &destRect, 90.0, NULL, SDL_FLIP_NONE); + } + } + } + + return true; }