From bfa0105ebf9fff1dfdca237bb486a682c1992a71 Mon Sep 17 00:00:00 2001 From: Reimar Date: Wed, 5 Nov 2025 14:45:29 +0100 Subject: [PATCH] Add gold gained effect on kill --- assets/Jersey10-Regular.ttf | Bin 0 -> 76636 bytes src/Game.cpp | 14 +++++++++----- src/Game.hpp | 2 +- src/effects/Effect.hpp | 2 ++ src/effects/GoldGainedHint.cpp | 15 +++++++++++++++ 5 files changed, 27 insertions(+), 6 deletions(-) create mode 100644 assets/Jersey10-Regular.ttf diff --git a/assets/Jersey10-Regular.ttf b/assets/Jersey10-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..42ac920f1de5aee411cafcfd49205990d62b9836 GIT binary patch literal 76636 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 literal 0 HcmV?d00001 diff --git a/src/Game.cpp b/src/Game.cpp index 56a45b0..f6ea337 100644 --- a/src/Game.cpp +++ b/src/Game.cpp @@ -6,6 +6,7 @@ #include "Game.hpp" #include "Color.hpp" #include "effects/Particle.hpp" +#include "effects/GoldGainedHint.hpp" using namespace std::literals::chrono_literals; @@ -15,7 +16,8 @@ Game::Game() : renderer("Zombo Shooter", 800, 450), player(&renderer), map(&rend zombo_sprite = renderer.load_sprite("./assets/zombo.png", 40, 40); gold_sprite = renderer.load_sprite("./assets/gold.png", 30, 20); - font = renderer.load_font("./assets/Jersey20-Regular.ttf", 26); + small_font = renderer.load_font("./assets/Jersey10-Regular.ttf", 20); + normal_font = renderer.load_font("./assets/Jersey20-Regular.ttf", 26); } void Game::update(std::stop_token stop_token) @@ -75,8 +77,10 @@ void Game::update(std::stop_token stop_token) std::erase(arrows, arrow); if (zombo.hp == 0) { - std::erase(zombos, zombo); player.gold += 10; + effects.push_back(std::make_unique(zombo.x, zombo.y, 10, gold_sprite.get(), small_font)); + + std::erase(zombos, zombo); } } } @@ -120,9 +124,9 @@ void Game::draw() renderer.draw_sprite(*gold_sprite, renderer.screen_width - 50, 10); - int text_width = renderer.get_text_width(font, std::to_string(player.gold)); - renderer.draw_text(font, std::to_string(player.gold), renderer.screen_width - gold_sprite->width - text_width - 28, 10, rgb(0, 0, 0)); - renderer.draw_text(font, std::to_string(player.gold), renderer.screen_width - gold_sprite->width - text_width - 30, 8, rgb(255, 255, 255)); + int text_width = renderer.get_text_width(normal_font, std::to_string(player.gold)); + renderer.draw_text(normal_font, std::to_string(player.gold), renderer.screen_width - gold_sprite->width - text_width - 28, 10, rgb(0, 0, 0)); + renderer.draw_text(normal_font, std::to_string(player.gold), renderer.screen_width - gold_sprite->width - text_width - 30, 8, rgb(255, 255, 255)); renderer.flush(); } diff --git a/src/Game.hpp b/src/Game.hpp index 3dc7c3a..02b3451 100644 --- a/src/Game.hpp +++ b/src/Game.hpp @@ -20,7 +20,7 @@ private: std::vector zombos; std::vector> effects; std::unique_ptr arrow_sprite, zombo_sprite, gold_sprite; - Font *font; + Font *small_font, *normal_font; std::mutex game_mutex; unsigned int ticks = 0; diff --git a/src/effects/Effect.hpp b/src/effects/Effect.hpp index 3fe2414..403edf3 100644 --- a/src/effects/Effect.hpp +++ b/src/effects/Effect.hpp @@ -14,6 +14,8 @@ public: virtual void update() = 0; virtual void draw(const GameRenderer *renderer, double player_x, double player_y) const = 0; + + bool operator==(const Effect &other) const = default; }; #endif diff --git a/src/effects/GoldGainedHint.cpp b/src/effects/GoldGainedHint.cpp index 61c59db..0ea3baf 100644 --- a/src/effects/GoldGainedHint.cpp +++ b/src/effects/GoldGainedHint.cpp @@ -1,3 +1,4 @@ +#include #include "GoldGainedHint.hpp" GoldGainedHint::GoldGainedHint(double x, double y, int amount, const Sprite *gold_sprite, Font *font) @@ -8,10 +9,24 @@ GoldGainedHint::GoldGainedHint(double x, double y, int amount, const Sprite *gol void GoldGainedHint::update() { + ticks++; y--; } void GoldGainedHint::draw(const GameRenderer *renderer, double player_x, double player_y) const { + std::string text = std::format("+{}", amount); + int draw_x = (int)(x + renderer->screen_width / 2 - player_x); + int draw_y = (int)(y + renderer->screen_height / 2 - player_y); + int draw_width = gold_sprite->width + 5 + renderer->get_text_width(font, text); + + renderer->draw_sprite(*gold_sprite, draw_x - draw_width / 2, draw_y); + + renderer->draw_text( + font, text, + draw_x - draw_width / 2 + gold_sprite->width + 5, + draw_y - 2, + rgb(255, 255, 255) + ); }