From 5404057af3ee9f8a6f3475c20e768fe56f9fc83c Mon Sep 17 00:00:00 2001 From: kdx Date: Thu, 23 Mar 2023 21:28:39 +0100 Subject: polish title screen --- src/background.c | 4 +++- src/main.c | 18 +++++++++++++----- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/src/background.c b/src/background.c index f0991e4..48501c1 100644 --- a/src/background.c +++ b/src/background.c @@ -15,7 +15,7 @@ draw_square(double size, double angle) void background_update(Game *g) { - if (game_entity_count(g, entity_type("player")) > 0) + if (g != NULL && game_entity_count(g, entity_type("player")) > 0) tick += 1.0; else tick += 0.25; @@ -24,6 +24,8 @@ background_update(Game *g) void background_draw(void) { + if (!tick) + return; LZY_DrawSetColor(BLACK); draw_square(300 * sin(tick / 50), tick / 40); draw_square(300 * sin(tick / 40), tick / 30); diff --git a/src/main.c b/src/main.c index 2ae18d2..2b4bd3c 100644 --- a/src/main.c +++ b/src/main.c @@ -23,17 +23,24 @@ int main(void) } game_init(game); - int hold = 0; + double hold = 0; int stage = 0; while (!LZY_ShouldQuit()) { + extern double tick; LZY_CycleEvents(); input_update(); - if (input_down(K_O)) + if (input_down(K_O)) { hold += 1; - else - hold -= 3; - if (hold < 0) + tick += 1; + } else { + hold *= 0.9; + tick *= 0.9; + } + if (hold < 1.0 / 128) { hold = 0; + tick = 0; + } + LZY_Log("%f %f", hold, tick); if (hold > 50) { if (stage == 1) break; @@ -61,6 +68,7 @@ int main(void) LZY_DrawText(48, y += 48, "hold SHIFT to continue"); if (hold) LZY_DrawFillRect(0, DISPLAY_HEIGHT - 24, hold * 8, 24); + background_draw(); LZY_DrawEnd(); } -- cgit v1.2.3