aboutsummaryrefslogtreecommitdiff
path: root/progress/src/menu.c
diff options
context:
space:
mode:
authorThomas Guillermo Albers Raviola <thomas@thomaslabs.org>2026-01-16 19:38:33 +0100
committerThomas Guillermo Albers Raviola <thomas@thomaslabs.org>2026-01-16 19:38:33 +0100
commita90db3b7b6e87e24c789b5db222f1cef92809bde (patch)
tree2096abcb1ac1ea970a51e598257186bc4e030b22 /progress/src/menu.c
Initial commit
Diffstat (limited to 'progress/src/menu.c')
-rw-r--r--progress/src/menu.c72
1 files changed, 72 insertions, 0 deletions
diff --git a/progress/src/menu.c b/progress/src/menu.c
new file mode 100644
index 0000000..ea4b1df
--- /dev/null
+++ b/progress/src/menu.c
@@ -0,0 +1,72 @@
+#include "main.h"
+
+void menu_render(SDL_Renderer *renderer, GameState *gameState)
+{
+ //set the drawing color to white
+ SDL_SetRenderDrawColor(renderer, 255, 255, 255, 255);
+
+ //Clear the screen (to blue)
+ SDL_RenderClear(renderer);
+ ///set the drawing color to white
+ SDL_SetRenderDrawColor(renderer, 255, 255, 255, 255);
+ ///Dibujar Persona
+ SDL_Rect menu = {gameState->menu.x, gameState->menu.y, gameState->menu.w, gameState->menu.h};
+ SDL_Rect menu_sprite = {gameState->menu.camara_x[gameState->menu.camara], gameState->menu.camara_y, 64, 48};
+ if (gameState->player1.facing_left == 0)
+ SDL_RenderCopyEx(renderer, gameState->menuTexture, &menu_sprite, &menu, 0 , NULL, SDL_FLIP_NONE);
+ ///We are done drawing, "present" or show to the screen what we've drawn
+ SDL_RenderPresent(renderer);
+}
+
+int menu_events(SDL_Window *window,GameState *gameState)
+{
+ SDL_Event event;
+ int done = 0;
+ while(SDL_PollEvent(&event))
+ {
+ switch(event.type)
+ {
+ case SDL_WINDOWEVENT_CLOSE:
+ {
+ if(window)
+ {
+ SDL_DestroyWindow(window);
+ window = NULL;
+ done = 1;
+ }
+ }
+ break;
+ case SDL_KEYDOWN:
+ {
+ switch(event.key.keysym.sym)
+ {
+ case SDLK_ESCAPE:
+ done = 1;
+ break;
+ }
+ }
+ break;
+ case SDL_QUIT:
+ //quit out of the game
+ done = 1;
+ break;
+ case SDL_MOUSEBUTTONDOWN:
+ if(event.motion.x > 60 && event.motion.x < 580 && event.motion.y > 190 && event.motion.y < 270)
+ done = 1;
+ if(event.motion.x > 60 && event.motion.x < 580 && event.motion.y > 340 && event.motion.y < 420)
+ {
+ gameState->done = 1;
+ done = 1;
+ }
+ break;
+ case SDL_MOUSEMOTION:
+ if(event.motion.x > 60 && event.motion.x < 580 && event.motion.y > 190 && event.motion.y < 270)
+ gameState->menu.camara = 1;
+ else if(event.motion.x > 60 && event.motion.x < 580 && event.motion.y > 340 && event.motion.y < 420)
+ gameState->menu.camara = 2;
+ else
+ gameState->menu.camara = 0;
+ }
+ }
+ return done;
+}