#include "GameScreen.h" #include #include #include #include "Globals.h" #include "OverScreen.h" #include "Stage.h" static constexpr Color INTERFACE {0, 0, 0, 230}; static constexpr float BAR_WIDTH {160}; GameScreen::GameScreen(std::unique_ptr stage) : m_stage {std::move(stage)}, m_stats {std::make_shared()} { m_stage->m_player.m_playground = Rectangle{ BAR_WIDTH, 0, GetScreenWidth() - 2 * BAR_WIDTH, static_cast(GetScreenHeight())}; m_stage->m_stats = m_stats; } void GameScreen::update(const float dt) { m_stage->update(dt); m_stats->points += 100 * dt; if (m_stats->lifes < 0) g_game.set(std::make_unique(m_stats)); } void GameScreen::draw() { m_stage->draw(); DrawRectangle(0, 0, BAR_WIDTH, 600, INTERFACE); DrawRectangle(800 - BAR_WIDTH, 0, BAR_WIDTH, 600, INTERFACE); DrawText(TextFormat("%d", m_stats->total_bullets), 5, 25, 20, DARKGRAY); DrawText(TextFormat("%d", m_stats->lifes), 5, 45, 20, DARKGREEN); DrawText(TextFormat("%d", m_stats->points), 5, 65, 20, GOLD); DrawFPS(5, 5); }