• GameEnd.cpp
  • #include "../Game.h"
    #include "../BackgroundRenderer.hpp"
    
    void Game::GameEndScene() {
        NewScene(2, std::move(ImageBackgroundRenderer{}), false, true, false);  
        ExecuteForScene<ImageBackgroundRenderer>(2,[&](Gorgon::Game::Template::Scene<ImageBackgroundRenderer>& scene) {
            using namespace Gorgon::UI::literals;
    
            gameend.Move(250_px, 400_px);
            gameend.SetWidth(600_px);
            gameend.Text = "# You lost! Press space to play again!";
            
            scene.GetUI().Add(gameend);
    
            scene.OnKeyEvent.Register([&](Gorgon::Input::Key key, float active) {
                if(key == Keycodes::Space and active) {
                    health = 5; 
                    points = 0; 
                    aliens.Clear();
                    player_lasers.Clear(); 
                    player.location = {480, 320}; 
                    for(auto& k : keypress) {
                        k.Release();
                    }
                    AlienVariables::ResetToDefaults();
                    score.Text = Gorgon::String::Concat("**Points:** ", points, " **Health:** ", health);
                    SwitchScene(1); 
                }
            });
        }); 
    }