add gameover

This commit is contained in:
Martin Araneda 2022-08-27 18:14:21 -04:00
parent a9f26a8408
commit a27f968297
3 changed files with 70 additions and 47 deletions

View File

@ -1,7 +1,8 @@
[gd_scene load_steps=3 format=2]
[gd_scene load_steps=4 format=2]
[ext_resource path="res://Main.gdns" type="Script" id=1]
[ext_resource path="res://levels/Prototype.tscn" type="PackedScene" id=2]
[ext_resource path="res://GUI/GameOver.tscn" type="PackedScene" id=3]
[node name="Main" type="Node"]
pause_mode = 2
@ -10,3 +11,6 @@ level = ExtResource( 2 )
[node name="Level" type="Node" parent="."]
pause_mode = 1
[node name="GameOver" parent="." instance=ExtResource( 3 )]
visible = false

View File

@ -1,12 +1,16 @@
#include "gui/game_over/GameOverScreen.h"
#include <Resource.hpp>
#include <Ref.hpp>
#include <Node.hpp>
#include <SceneTree.hpp>
#include <PackedScene.hpp>
#include <Viewport.hpp>
using namespace godot;
void GameOverScreen::_register_methods()
{
register_method("_on_restart_button_pressed", &GameOverScreen::_on_restart_button_pressed);
{
register_method("_on_animation_finished", &GameOverScreen::_on_botonreiniciar_pressed);
}
GameOverScreen::GameOverScreen()
@ -19,9 +23,20 @@ GameOverScreen::~GameOverScreen()
void GameOverScreen::_init()
{
_resource_loader = ResourceLoader::get_singleton();
}
void GameOverScreen::_on_restart_button_pressed()
void GameOverScreen::_on_botonreiniciar_pressed()
{
get_tree()->change_scene("res://monitor/GUI.tscn");
if (_resource_loader->exists("res://levels/Prototype.tscn")) //CAMBIAR A DINAMICO
{
Ref<PackedScene> level_scene = _resource_loader->load("res://levels/Prototype.tscn");
auto level = level_scene->instance();
auto level_node = get_tree()->get_root()->find_node("Level");
level_node->add_child(level);
}
}

View File

@ -1,56 +1,60 @@
#ifndef ALAI_GAME_OVER_SCREEN
#define ALAI_GAME_OVER_SCREEN
#ifndef ALAI_GAME_OVER_SCREEN_H
#define ALAI_GAME_OVER_SCREEN_H
#include <Godot.hpp>
#include <Node.hpp>
#include <Control.hpp>
#include <ResourceLoader.hpp>
namespace godot
{
/**
* @brief This class controls what happens when the Coin is in the collected .
*
*/
class GameOverScreen : public Control
{
GODOT_CLASS(GameOverScreen, Control)
/**
* @brief This class controls what happens when the Coin is in the collected .
*
*/
class GameOverScreen : public Control
{
GODOT_CLASS(GameOverScreen, Control)
private:
private:
ResourceLoader *_resource_loader;
public:
/**
* @brief This method registers classes with Godot.
*
* @details This method registers methods, properties, and signals with the Godot engine.
*/
static void _register_methods();
public:
/**
* @brief This method registers classes with Godot.
*
* @details This method registers methods, properties, and signals with the Godot engine.
*/
static void _register_methods();
/**
* @brief Construct a new GameOverScreen object.
*
*/
GameOverScreen();
/**
* @brief Construct a new GameOverScreen object.
*
*/
GameOverScreen();
/**
* @brief Destroy the GameOverScreen object.
*
*/
~GameOverScreen();
/**
* @brief Destroy the GameOverScreen object.
*
*/
~GameOverScreen();
/**
* @brief Initialize the class from Godot.
*
* @details This method is called just once when the Godot engine connects to the instance of the class.
*/
void _init();
/**
* @brief Initialize the class from Godot.
*
* @details This method is called just once when the Godot engine connects to the instance of the class.
*/
void _init();
/**
* @brief Called when the collected of the coin is entered.
*
*/
void _on_botonreiniciar_pressed();
/**
* @brief Called when the collected of the coin is entered.
*
*/
void _on_restart_button_pressed();
};
};
}
#endif
#endif