diff --git a/CMakeLists.txt b/CMakeLists.txt index 46079cf..e4bd260 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -22,6 +22,8 @@ add_executable(Obstacle src/entities/Player.h src/entities/Opponent.cpp src/entities/Opponent.h + src/states/EndingState.cpp + src/states/EndingState.h ) target_link_libraries(Obstacle SDL2::SDL2 SDL2_image::SDL2_image SDL2_ttf::SDL2_ttf) \ No newline at end of file diff --git a/src/states/EndingState.cpp b/src/states/EndingState.cpp new file mode 100644 index 0000000..addf934 --- /dev/null +++ b/src/states/EndingState.cpp @@ -0,0 +1,37 @@ +#include "EndingState.h" +#include "../Renderer.h" +#include +#include + +void EndingState::init() { + SDL_ShowCursor(SDL_ENABLE); + std::cout << "Ending state initialized\n"; +} + +void EndingState::handleEvents(SDL_Event& event) { + if (event.type == SDL_KEYDOWN) { + switch (event.key.keysym.sym) { + case SDLK_ESCAPE: + std::cout << "Exiting game\n"; + this->changeRoom("exit"); + break; + default: + break; + } + } +} + +void EndingState::update() { + +} + +void EndingState::render(SDL_Renderer* renderer, double deltaTime) { + SDL_SetRenderDrawColor(renderer, 0, 0, 0, SDL_ALPHA_OPAQUE); + SDL_RenderClear(renderer); + + TTF_Font *font = TTF_OpenFont("./res/font.ttf", 24); + drawText(renderer, font, "GAME OVER", + WINDOW_WIDTH / 2 - 100, WINDOW_HEIGHT / 2 - 50, {255, 0, 0, SDL_ALPHA_OPAQUE}); + + SDL_RenderPresent(renderer); +} diff --git a/src/states/EndingState.h b/src/states/EndingState.h new file mode 100644 index 0000000..d90f63f --- /dev/null +++ b/src/states/EndingState.h @@ -0,0 +1,11 @@ +#include "GameState.h" +#include +#include + +class EndingState final : public GameState { +public: + void init() override; + void handleEvents(SDL_Event& event) override; + void update() override; + void render(SDL_Renderer* renderer, double deltaTime) override; +}; \ No newline at end of file