From f0c29957335dd79897379fc067eeffb439b0bf58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mathis=20Rib=C3=A9mont?= Date: Mon, 7 Feb 2022 09:55:57 +0100 Subject: [PATCH] =?UTF-8?q?isButtonEntry=20pour=20l'entr=C3=A9e=20du=20cur?= =?UTF-8?q?seur=20dans=20le=20bouton=20+=20bruit=20au=20bouton=20hover?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Pontu/entryPoints/main.c | 7 ++++--- Pontu/include/engine/AudioHandler.h | 3 ++- Pontu/include/engine/Button.h | 4 +++- Pontu/include/view/MainMenu.h | 3 ++- Pontu/rsrc/sfx/menu_sound_effect.wav | Bin 0 -> 454964 bytes Pontu/src/engine/AudioHandler.c | 13 ++++++------- Pontu/src/engine/Button.c | 18 +++++++++++++----- Pontu/src/engine/GameInputProcessor.c | 3 +-- Pontu/src/engine/InputProcessor.c | 5 ++--- Pontu/src/view/MainMenu.c | 15 +++++++++------ 10 files changed, 42 insertions(+), 29 deletions(-) create mode 100644 Pontu/rsrc/sfx/menu_sound_effect.wav diff --git a/Pontu/entryPoints/main.c b/Pontu/entryPoints/main.c index cf480dc..b679198 100644 --- a/Pontu/entryPoints/main.c +++ b/Pontu/entryPoints/main.c @@ -37,16 +37,17 @@ int main(int argc, char const *argv[]) { exit(2); } FontHandler fontHandler = loadFonts(); + AudioHandler audioHandler = newAudioHandler(128, 128, 128); generalState = GS_MainMenu; while(generalState != GS_Quit){ switch (generalState) { case GS_MainMenu: - mainMenu(renderer,window,&generalState, fontHandler); + mainMenu(renderer,window,&generalState, fontHandler, audioHandler); break; - case GS_EndOfGameMenu:// Coupler avec le menu de jeu + /*case GS_EndOfGameMenu:// Coupler avec le menu de jeu endGameMenu(&generalState, window, renderer, fontHandler, NULL, 0); - break; + break;*/ } } diff --git a/Pontu/include/engine/AudioHandler.h b/Pontu/include/engine/AudioHandler.h index 0163bab..01be82c 100644 --- a/Pontu/include/engine/AudioHandler.h +++ b/Pontu/include/engine/AudioHandler.h @@ -31,7 +31,8 @@ * \sa #MACRO_FOR_ALL_MUSICS(M) */ #define MACRO_FOR_ALL_SFX(M) \ - M(testClick) + M(testClick) \ + M(menu_sound_effect) /** * Macro used to generate the entries for the musics in #EnumAudios. diff --git a/Pontu/include/engine/Button.h b/Pontu/include/engine/Button.h index 1e7be9c..eb728f3 100644 --- a/Pontu/include/engine/Button.h +++ b/Pontu/include/engine/Button.h @@ -58,7 +58,9 @@ bool drawButtonOnRenderer(SDL_Renderer* renderer, P_Button* button); * \param[in] y y of the point * \return SDL_TRUE if the point is on the button */ -bool isHover(P_Button* button, int x,int y);// dit si le bouton est survolé en donnant les coordonnées x,y +bool isHover(P_Button* button);// dit si le bouton est survolé en donnant les coordonnées x,y + +bool isButtonEntry(P_Button * button,const int x,const int y); /** * \brief Free the texture of a button. diff --git a/Pontu/include/view/MainMenu.h b/Pontu/include/view/MainMenu.h index d8aa932..af1e5e8 100644 --- a/Pontu/include/view/MainMenu.h +++ b/Pontu/include/view/MainMenu.h @@ -7,9 +7,10 @@ #include "engine/TextureLoader.h" #include "engine/FontLoader.h" #include "engine/GeneralState.h" +#include "engine/AudioHandler.h" P_Button* drawMainMenu(SDL_Renderer* renderer,const FontHandler fontHandler, unsigned int* nb, const SDL_Rect* windowSize); -int mainMenu(SDL_Renderer * renderer,SDL_Window * window, GeneralState * generalState,FontHandler fontHandler); +int mainMenu(SDL_Renderer * renderer,SDL_Window * window, GeneralState * generalState,FontHandler fontHandler, AudioHandler audioHandler); #endif diff --git a/Pontu/rsrc/sfx/menu_sound_effect.wav b/Pontu/rsrc/sfx/menu_sound_effect.wav new file mode 100644 index 0000000000000000000000000000000000000000..773aa5b8b86d38dae0e5483ec5c6e8806e46882f GIT binary patch literal 454964 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 z3aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEez zsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKn zfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L9 z3aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEez zsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKn zfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L9 z3aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEez zsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKn zfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L9 z3aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEez zsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKn zfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L9 z3aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEez zsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKn zfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L9 z3aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEez zsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKn zfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L9 z3aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEez zsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKn zfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L9 z3aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEez zsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKn zfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L9 z3aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEez zsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKn zfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L9 z3aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEez zsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKn zfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L9 z3aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEez zsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKn zfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L9 z3aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEez zsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKn zfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L9 z3aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aEezsDKKnfC{L93aG%{ z7Z^Eo*pT{`-~MqIo6Y+F{3WOV{JOKv=4$>=+w%Y4qphBQu|r`z{Cu0|+CKl{a~=F} V|G8ErUmP{M@4(kf)~IH){Xbmpmw*5O literal 0 HcmV?d00001 diff --git a/Pontu/src/engine/AudioHandler.c b/Pontu/src/engine/AudioHandler.c index a217a75..c468e41 100644 --- a/Pontu/src/engine/AudioHandler.c +++ b/Pontu/src/engine/AudioHandler.c @@ -2,7 +2,7 @@ // A channel represents the number of SFX we can play at the same time. // We normally should use only 1 channel, and we add one for safety. -#define NBCHANNELS 2 +#define NBCHANNELS 10 // Local functions @@ -19,7 +19,7 @@ int fadeOut(void* args) { // casting args to a pointer to Mix_Music Mix_Music* music = (Mix_Music*)args; int ret; - + if(Mix_FadeOutMusic(500) == 1) { // Starting the fadeout while (Mix_PlayingMusic()) { ; // Waiting until it's done @@ -60,7 +60,7 @@ AudioHandler newAudioHandler(int masterVol, int volMusic, int volSFX) { audioHandler.masterVol = masterVol; fprintf(stderr,"Musics: %d\nSFX: %d\n",NB_MUSIC_DEFINED,nb_SFX); - + // Loading musics for (size_t i = 0; i < NB_MUSIC_DEFINED; i++) { audioHandler.musics[i] = Mix_LoadMUS(musicsPaths[i]); @@ -140,13 +140,13 @@ void playMusic(EnumAudios music, AudioHandler audioHandler) { fprintf(stderr,"WARNING: tried to play an arbitrary value as a music\n"); return; } - + // Checking if audio has been opened. if (!(audioHandler.canPlayAudio)) { fprintf(stderr,"WARNING: tried to play a music with an unusable AudioHandler\n"); return; } - + // If another music is playing, fading the previous one out if (Mix_PlayingMusic()) { // Creating the thread, passing the music as parameter @@ -180,7 +180,7 @@ void playSFX(EnumAudios sfx, AudioHandler audioHandler) { fprintf(stderr,"WARNING: tried to play an SFX with an unusable AudioHandler\n"); return; } - + // Getting actual chunk chunkSFX = audioHandler.sfx[sfx - NB_MUSIC_DEFINED - 1]; // Getting first available channel @@ -196,4 +196,3 @@ void playSFX(EnumAudios sfx, AudioHandler audioHandler) { return; } } - diff --git a/Pontu/src/engine/Button.c b/Pontu/src/engine/Button.c index 5e3d0af..273c962 100644 --- a/Pontu/src/engine/Button.c +++ b/Pontu/src/engine/Button.c @@ -27,12 +27,8 @@ bool drawButtonOnRenderer(SDL_Renderer* renderer, P_Button* button) return true; } -bool isHover(P_Button* button,const int x,const int y) +bool isHover(P_Button* button) { - SDL_Point coord; - coord.x = x; - coord.y = y; - button->hover = SDL_PointInRect(&coord,&(button->rect)); return button->hover && button->drawn; } @@ -60,3 +56,15 @@ void freeButton(P_Button * button){ SDL_DestroyTexture(button->texture); SDL_DestroyTexture(button->hoverTexture); } + +bool isButtonEntry(P_Button * button,const int x,const int y){ + SDL_Point coord; + coord.x = x; + coord.y = y; + if(isHover(button)){ + button->hover = SDL_PointInRect(&coord,&(button->rect)); + return false; + } + button->hover = SDL_PointInRect(&coord,&(button->rect)); + return button->hover; +} diff --git a/Pontu/src/engine/GameInputProcessor.c b/Pontu/src/engine/GameInputProcessor.c index 64006c5..73af6e5 100644 --- a/Pontu/src/engine/GameInputProcessor.c +++ b/Pontu/src/engine/GameInputProcessor.c @@ -81,11 +81,10 @@ InputElement proccessGameInput(GameInputProcessor *gameInputProcessor, const SDL { for (size_t i = 0; itabButton.size; ++i) { P_Button* b = &gameInputProcessor->tabButton.elems[i]; - isHover(b, event.motion.x, event.motion.y); + isButtonEntry(b, event.motion.x, event.motion.y); } } } return createInputElementNone(); } - diff --git a/Pontu/src/engine/InputProcessor.c b/Pontu/src/engine/InputProcessor.c index 5b931b3..c970099 100644 --- a/Pontu/src/engine/InputProcessor.c +++ b/Pontu/src/engine/InputProcessor.c @@ -26,7 +26,7 @@ InputElement proccessInput(InputProcessor *inputProcessor) case SDL_MOUSEBUTTONUP: { const SDL_Point mousePoint = {.x = event.button.x, .y = event.button.y}; - + for (size_t i = 0; itabButton.size; ++i) { P_Button* b = &inputProcessor->tabButton.elems[i]; if (SDL_PointInRect(&mousePoint, &b->rect)) { @@ -39,7 +39,7 @@ InputElement proccessInput(InputProcessor *inputProcessor) { for (size_t i = 0; itabButton.size; ++i) { P_Button* b = &inputProcessor->tabButton.elems[i]; - isHover(b, event.motion.x, event.motion.y); + isButtonEntry(b, event.motion.x, event.motion.y); } break; } @@ -47,4 +47,3 @@ InputElement proccessInput(InputProcessor *inputProcessor) return createInputElementNone(); } - diff --git a/Pontu/src/view/MainMenu.c b/Pontu/src/view/MainMenu.c index 1bd2f85..0423fe1 100644 --- a/Pontu/src/view/MainMenu.c +++ b/Pontu/src/view/MainMenu.c @@ -63,7 +63,7 @@ P_Button* drawMainMenu(SDL_Renderer* renderer,const FontHandler fontHandler, uns return buttons; } -int mainMenu(SDL_Renderer * renderer,SDL_Window * window, GeneralState * generalState,FontHandler fontHandler){ +int mainMenu(SDL_Renderer * renderer,SDL_Window * window, GeneralState * generalState,FontHandler fontHandler, AudioHandler audioHandler){ int statut = EXIT_FAILURE; char* path = "../rsrc/img/Lenna.png"; //Initialisation @@ -92,17 +92,20 @@ int mainMenu(SDL_Renderer * renderer,SDL_Window * window, GeneralState * general *generalState = GS_Quit; break; case SDL_MOUSEBUTTONUP: - if(isHover(buttons,event.button.x,event.button.y)) + if(isHover(buttons)) printf("Nouvelle partie\n"); - if(isHover(&(buttons[2]),event.motion.x,event.motion.y)){ + if(isHover(&(buttons[2]))){ buttons[2].onClick(&(buttons[2])); break; } break; case SDL_MOUSEMOTION: - isHover(&(buttons[0]),event.motion.x,event.motion.y); - isHover(&(buttons[1]),event.motion.x,event.motion.y); - isHover(&(buttons[2]),event.motion.x,event.motion.y); + if(isButtonEntry(&(buttons[0]),event.motion.x,event.motion.y) || + isButtonEntry(&(buttons[1]),event.motion.x,event.motion.y) || + isButtonEntry(&(buttons[2]),event.motion.x,event.motion.y)){ + playSFX(SFX_menu_sound_effect, audioHandler); + printf("True\n"); + } break; default: break;