From 764efea5a38b970fa57d8c0197673276023b58aa Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Sat, 13 Mar 2021 07:45:55 -0500 Subject: Added pause menu opening and closing animation #7 --- src/renderer.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'src/renderer.cpp') diff --git a/src/renderer.cpp b/src/renderer.cpp index ea8a2ac..314dd4f 100644 --- a/src/renderer.cpp +++ b/src/renderer.cpp @@ -8,6 +8,7 @@ #include "message_system.h" #include "effect_system.h" #include "input_system.h" +#include "menu_system.h" Renderer::Renderer() { win_ = window_ptr( @@ -124,6 +125,7 @@ void Renderer::renderSprite(const Sprite& sprite) { void Renderer::render(Game& game) { auto& effects = game.getSystem(); + auto& menus = game.getSystem(); if (cachedMapName_ != game.getMap().getName()) { cachedMapName_ = game.getMap().getName(); @@ -493,6 +495,24 @@ void Renderer::render(Game& game) { } } + if (menus.isMenuOpen()) { + SDL_SetRenderTarget(ren_.get(), cameraTex.get()); + SDL_SetRenderDrawBlendMode(ren_.get(), SDL_BLENDMODE_NONE); + SDL_SetRenderDrawColor(ren_.get(), 0, 0, 0, 255); + SDL_RenderFillRect(ren_.get(), nullptr); + } else if (menus.getPauseAnimationProgress() > 0.0) { + SDL_SetRenderTarget(ren_.get(), cameraTex.get()); + SDL_SetRenderDrawBlendMode(ren_.get(), SDL_BLENDMODE_NONE); + SDL_SetRenderDrawColor(ren_.get(), 0, 0, 0, 255); + + int barHeight = CANVAS_HEIGHT / 2 * menus.getPauseAnimationProgress(); + SDL_Rect topHalf { 0, 0, CANVAS_WIDTH, barHeight }; + SDL_Rect bottomHalf { 0, CANVAS_HEIGHT - barHeight, CANVAS_WIDTH, barHeight }; + + SDL_RenderFillRect(ren_.get(), &topHalf); + SDL_RenderFillRect(ren_.get(), &bottomHalf); + } + SDL_SetRenderTarget(ren_.get(), nullptr); SDL_RenderCopy(ren_.get(), cameraTex.get(), nullptr, nullptr); SDL_RenderPresent(ren_.get()); -- cgit 1.4.1