From 794d00a4d798c24e412bd976d42cc073ad784d9d Mon Sep 17 00:00:00 2001 From: Mark B Date: Tue, 17 May 2022 19:03:22 -0400 Subject: [PATCH] added TITLE option on the gameover screen --- html5/shell.html | 10 ++++----- src/Main.c | 56 +++++++++++++++++++++++++++++------------------- 2 files changed, 39 insertions(+), 27 deletions(-) diff --git a/html5/shell.html b/html5/shell.html index 3cdaa33..ce48746 100644 --- a/html5/shell.html +++ b/html5/shell.html @@ -4,15 +4,15 @@ - raylib web game + Avoid - + - + @@ -22,10 +22,10 @@ - + - + diff --git a/src/Main.c b/src/Main.c index d53971e..60b048b 100644 --- a/src/Main.c +++ b/src/Main.c @@ -31,6 +31,9 @@ typedef struct Player { } Player; // Game variables +static int pauseTimer; +static int score, bestscore; +static int titleSelected = 0, gameoverSelected = 0; static GameScreen currentScreen = { 0 }; static Sound fxbounce = { 0 }; static Player player = { 0 }; @@ -38,9 +41,6 @@ static Ball ball = { 0 }; static bool pause; static bool mute; static bool ShowHitbox; -static int pauseTimer; -static int score, bestscore; -static int selected = 0; // Game functions static void gameSetup(void); @@ -58,12 +58,13 @@ int main(void) gameSetup(); + #if defined(PLATFORM_WEB) emscripten_set_main_loop(gameLoop, 0, 1); #else - SetTargetFPS(60); + SetTargetFPS(60); - while (!WindowShouldClose()) gameLoop(); + while (!WindowShouldClose()) gameLoop(); #endif unloadGame(); @@ -99,7 +100,7 @@ void gameSetup(void) }; ball.position = (Vector2){ 50, 50 }; - ball.speed = (Vector2){ 400.0f, 300.0f }; + ball.speed = (Vector2){ 6.0f, 5.0f }; ball.radius = 20; ball.growth = 2; ball.color = MAROON; @@ -108,7 +109,6 @@ void gameSetup(void) pause = 0; mute = 0; ShowHitbox = 0; - pauseTimer = 0; score = 0; } @@ -120,14 +120,14 @@ void updateGame(void) switch(currentScreen) { case TITLE: - if (IsKeyPressed(KEY_UP)) selected++; - if (IsKeyPressed(KEY_DOWN)) selected--; - if (selected > 0) selected--; - if (selected < -2) selected++; + if (IsKeyPressed(KEY_UP)) titleSelected++; + if (IsKeyPressed(KEY_DOWN)) titleSelected--; + if (titleSelected > 0) titleSelected--; + if (titleSelected < -2) titleSelected++; - if ((selected == 0) && (IsKeyPressed(KEY_ENTER))) currentScreen = GAMEPLAY; - if ((selected == -1) && (IsKeyPressed(KEY_ENTER))) currentScreen = CREDITS; - if ((selected == -2) && (IsKeyPressed(KEY_ENTER))) OpenURL("https://canneddonuts.itch.io/"); + if ((titleSelected == 0) && (IsKeyPressed(KEY_ENTER))) currentScreen = GAMEPLAY; + if ((titleSelected == -1) && (IsKeyPressed(KEY_ENTER))) currentScreen = CREDITS; + if ((titleSelected == -2) && (IsKeyPressed(KEY_ENTER))) OpenURL("https://canneddonuts.itch.io/"); break; case GAMEPLAY: @@ -169,8 +169,8 @@ void updateGame(void) if (ball.active) { score++; // moveiement oof the balls - ball.position.x += GetFrameTime() * ball.speed.x; - ball.position.y += GetFrameTime() * ball.speed.y; + ball.position.x += ball.speed.x; + ball.position.y += ball.speed.y; if (score >= bestscore) bestscore = score; // Ballz to da wallz collies @@ -197,11 +197,17 @@ void updateGame(void) break; case GAMEOVER: - if (score > bestscore) bestscore = score; - if (IsKeyPressed(KEY_ENTER)) { + if (IsKeyPressed(KEY_UP)) gameoverSelected++; + if (IsKeyPressed(KEY_DOWN)) gameoverSelected--; + if (gameoverSelected > 0) gameoverSelected--; + if (gameoverSelected < -1) gameoverSelected++; + + if ((gameoverSelected == 0) && (IsKeyPressed(KEY_ENTER))) { gameReset(); currentScreen = GAMEPLAY; } + + if ((gameoverSelected == -1) && (IsKeyPressed(KEY_ENTER))) gameReset(); break; case CREDITS: if (IsKeyPressed(KEY_ENTER)) currentScreen = TITLE; @@ -228,13 +234,13 @@ void drawGame(void) DrawText("Press 'R' to restart", 10, 120, 10, RED); DrawText("Press 'ENTER' to select an option", 10, 140, 10, RED); DrawText("Avoid", 330, 20, 50, BLUE); - if (selected == 0) DrawText("PLAY", 360, 220, 20, WHITE); + if (titleSelected == 0) DrawText("PLAY", 360, 220, 20, WHITE); else DrawText("PLAY", 360, 220, 20, BLUE); - if (selected == -1) DrawText("CREDITS", 340, 240, 20, WHITE); + if (titleSelected == -1) DrawText("CREDITS", 340, 240, 20, WHITE); else DrawText("CREDITS", 340, 240, 20, BLUE); - if (selected == -2) DrawText("MORE GAMES", 320, 260, 20, WHITE); + if (titleSelected == -2) DrawText("MORE GAMES", 320, 260, 20, WHITE); else DrawText("MORE GAMES", 320, 260, 20, BLUE); break; @@ -253,7 +259,11 @@ void drawGame(void) case GAMEOVER: DrawRectangle(0, 0, screenWidth, screenHeight, BLUE); DrawText("GAMEOVER", 250, 20, 50, RED); - DrawText("PRESS ENTER TO RESET", 270, 220, 20, WHITE); + if (gameoverSelected == 0) DrawText("RETRY", 350, 200, 20, WHITE); + else DrawText("RETRY", 350, 200, 20, RED); + + if (gameoverSelected == -1) DrawText("TITLE", 350, 230, 20, WHITE); + else DrawText("TITLE", 350, 230, 20, RED); break; case CREDITS: @@ -294,6 +304,8 @@ void gameReset(void) pauseTimer = 0; score = 0; + + gameoverSelected = 0; } void gameLoop(void)