diff --git a/.mono/metadata/scripts_metadata.editor b/.mono/metadata/scripts_metadata.editor
index a1f1196..44cb16b 100644
--- a/.mono/metadata/scripts_metadata.editor
+++ b/.mono/metadata/scripts_metadata.editor
@@ -1 +1 @@
-{"res://codigos/BoardManager.cs":{"modified_time":"1587848329","class":{"namespace":"","class_name":"BoardManager","nested":false}},"res://codigos/Enemy.cs":{"modified_time":"1588009964","class":{"namespace":"","class_name":"Enemy","nested":false}},"res://codigos/Escena_Principal.cs":{"modified_time":"1587745563","class":{"namespace":"","class_name":"Escena_Principal","nested":false}},"res://codigos/GameManager.cs":{"modified_time":"1588009112","class":{"namespace":"","class_name":"GameManager","nested":false}},"res://codigos/MovingObject.cs":{"modified_time":"1588009857","class":{"namespace":"","class_name":"MovingObject","nested":false}},"res://codigos/Player.cs":{"modified_time":"1588010090","class":{"namespace":"","class_name":"Player","nested":false}},"res://codigos/SuelosScript/Suelo1.cs":{"modified_time":"1587836811","class":{"namespace":"","class_name":"Suelo1","nested":false}},"res://codigos/Wall.cs":{"modified_time":"1587905397","class":{"namespace":"","class_name":"Wall","nested":false}}}
\ No newline at end of file
+{"res://codigos/BoardManager.cs":{"modified_time":"1587848329","class":{"namespace":"","class_name":"BoardManager","nested":false}},"res://codigos/Enemy.cs":{"modified_time":"1588009964","class":{"namespace":"","class_name":"Enemy","nested":false}},"res://codigos/Escena_Principal.cs":{"modified_time":"1588085127","class":{"namespace":"","class_name":"Escena_Principal","nested":false}},"res://codigos/GameManager.cs":{"modified_time":"1588088651","class":{"namespace":"","class_name":"GameManager","nested":false}},"res://codigos/MovingObject.cs":{"modified_time":"1588009857","class":{"namespace":"","class_name":"MovingObject","nested":false}},"res://codigos/Player.cs":{"modified_time":"1588088747","class":{"namespace":"","class_name":"Player","nested":false}},"res://codigos/SingletonVariables.cs":{"modified_time":"1588087915","class":{"namespace":"","class_name":"SingletonVariables","nested":false}},"res://codigos/SuelosScript/Suelo1.cs":{"modified_time":"1587836811","class":{"namespace":"","class_name":"Suelo1","nested":false}},"res://codigos/Wall.cs":{"modified_time":"1587905397","class":{"namespace":"","class_name":"Wall","nested":false}}}
\ No newline at end of file
diff --git a/.mono/metadata/scripts_metadata.editor_player b/.mono/metadata/scripts_metadata.editor_player
index a1f1196..44cb16b 100644
--- a/.mono/metadata/scripts_metadata.editor_player
+++ b/.mono/metadata/scripts_metadata.editor_player
@@ -1 +1 @@
-{"res://codigos/BoardManager.cs":{"modified_time":"1587848329","class":{"namespace":"","class_name":"BoardManager","nested":false}},"res://codigos/Enemy.cs":{"modified_time":"1588009964","class":{"namespace":"","class_name":"Enemy","nested":false}},"res://codigos/Escena_Principal.cs":{"modified_time":"1587745563","class":{"namespace":"","class_name":"Escena_Principal","nested":false}},"res://codigos/GameManager.cs":{"modified_time":"1588009112","class":{"namespace":"","class_name":"GameManager","nested":false}},"res://codigos/MovingObject.cs":{"modified_time":"1588009857","class":{"namespace":"","class_name":"MovingObject","nested":false}},"res://codigos/Player.cs":{"modified_time":"1588010090","class":{"namespace":"","class_name":"Player","nested":false}},"res://codigos/SuelosScript/Suelo1.cs":{"modified_time":"1587836811","class":{"namespace":"","class_name":"Suelo1","nested":false}},"res://codigos/Wall.cs":{"modified_time":"1587905397","class":{"namespace":"","class_name":"Wall","nested":false}}}
\ No newline at end of file
+{"res://codigos/BoardManager.cs":{"modified_time":"1587848329","class":{"namespace":"","class_name":"BoardManager","nested":false}},"res://codigos/Enemy.cs":{"modified_time":"1588009964","class":{"namespace":"","class_name":"Enemy","nested":false}},"res://codigos/Escena_Principal.cs":{"modified_time":"1588085127","class":{"namespace":"","class_name":"Escena_Principal","nested":false}},"res://codigos/GameManager.cs":{"modified_time":"1588088651","class":{"namespace":"","class_name":"GameManager","nested":false}},"res://codigos/MovingObject.cs":{"modified_time":"1588009857","class":{"namespace":"","class_name":"MovingObject","nested":false}},"res://codigos/Player.cs":{"modified_time":"1588088747","class":{"namespace":"","class_name":"Player","nested":false}},"res://codigos/SingletonVariables.cs":{"modified_time":"1588087915","class":{"namespace":"","class_name":"SingletonVariables","nested":false}},"res://codigos/SuelosScript/Suelo1.cs":{"modified_time":"1587836811","class":{"namespace":"","class_name":"Suelo1","nested":false}},"res://codigos/Wall.cs":{"modified_time":"1587905397","class":{"namespace":"","class_name":"Wall","nested":false}}}
\ No newline at end of file
diff --git a/.mono/temp/bin/Debug/Rogue en Godot.dll b/.mono/temp/bin/Debug/Rogue en Godot.dll
index bbae8a5..e42bc1f 100644
Binary files a/.mono/temp/bin/Debug/Rogue en Godot.dll and b/.mono/temp/bin/Debug/Rogue en Godot.dll differ
diff --git a/.mono/temp/bin/Debug/Rogue en Godot.pdb b/.mono/temp/bin/Debug/Rogue en Godot.pdb
index 61ff0cc..08fb821 100644
Binary files a/.mono/temp/bin/Debug/Rogue en Godot.pdb and b/.mono/temp/bin/Debug/Rogue en Godot.pdb differ
diff --git a/.mono/temp/obj/Debug/Rogue en Godot.csprojAssemblyReference.cache b/.mono/temp/obj/Debug/Rogue en Godot.csprojAssemblyReference.cache
index a61d3de..45f14b9 100644
Binary files a/.mono/temp/obj/Debug/Rogue en Godot.csprojAssemblyReference.cache and b/.mono/temp/obj/Debug/Rogue en Godot.csprojAssemblyReference.cache differ
diff --git a/.mono/temp/obj/Debug/Rogue en Godot.dll b/.mono/temp/obj/Debug/Rogue en Godot.dll
index bbae8a5..e42bc1f 100644
Binary files a/.mono/temp/obj/Debug/Rogue en Godot.dll and b/.mono/temp/obj/Debug/Rogue en Godot.dll differ
diff --git a/.mono/temp/obj/Debug/Rogue en Godot.pdb b/.mono/temp/obj/Debug/Rogue en Godot.pdb
index 61ff0cc..08fb821 100644
Binary files a/.mono/temp/obj/Debug/Rogue en Godot.pdb and b/.mono/temp/obj/Debug/Rogue en Godot.pdb differ
diff --git a/Rogue en Godot.csproj b/Rogue en Godot.csproj
index 30a20c0..75462d0 100644
--- a/Rogue en Godot.csproj
+++ b/Rogue en Godot.csproj
@@ -59,6 +59,7 @@
+
diff --git a/codigos/Escena_Principal.cs b/codigos/Escena_Principal.cs
index 031da00..2a84617 100644
--- a/codigos/Escena_Principal.cs
+++ b/codigos/Escena_Principal.cs
@@ -7,14 +7,30 @@ public class Escena_Principal : Node2D
PackedScene GameManager;
private bool existeGameManager = false;
//Node2D escenaNueva;
-
+ private GameManager _GameManager;
// Called when the node enters the scene tree for the first time.
public override void _Ready()
{
+ _GameManager = (GameManager)GetTree().GetNodesInGroup("GameManager")[0];
TestGameManager();
+ //_GameManager.InitGame();//inicializo la función que crea todo el escenario como esta en 1 singleton solo se crea 1 ves.
+ //_GameManager.InitGame();//inicializo la función que crea todo el escenario como esta en 1 singleton solo se crea 1 ves.
+
}
-
+
+ /*public override void _Process(float delta)
+ {
+ GD.Print(_GameManager.inicioEscenario);
+ if(_GameManager.inicioEscenario)
+ {
+ return;
+ }
+ else
+ {
+ _GameManager.InitGame();//inicializo la función que crea todo el escenario como esta en 1 singleton solo se crea 1 ves.
+ }
+ }*/
private void TestGameManager() //esto es para verificar si existe en el nodo un game manager,caso contrario instancio 1
@@ -35,6 +51,11 @@ private void TestGameManager() //esto es para verificar si existe en el nodo un
}
}
+ private bool inicioEscenario(bool InitScene)//para saber si inicio el escenario
+ {
+ return InitScene;//retorna verdadero o falso
+ }
+
private void instanciarGameManager()
{
@@ -43,6 +64,7 @@ private void instanciarGameManager()
}
+
// // Called every frame. 'delta' is the elapsed time since the previous frame.
// public override void _Process(float delta)
// {
diff --git a/codigos/GameManager.cs b/codigos/GameManager.cs
index 2c406db..a678298 100644
--- a/codigos/GameManager.cs
+++ b/codigos/GameManager.cs
@@ -12,21 +12,65 @@ public class GameManager : Node2D
private List enemies = new List();//aqui voy a guardar los enemigos
private bool enemiesMoving;//si el enemigo se esta moviendo o no
+ private int level = 0;//cuenta el nivel en el que estamos lo usamos como parametro en setup scene
+ //public float levelStarDelay;
+ private Label LevelText;//referencia al texto del nivel actual
+ private Label FoodText;//referencia a la comida que posee el jugador
+ private ColorRect fondoColorUI;//referencia al fondo
+ public bool inicioEscenario = true;//para saber si inicio el escenario
+ public bool doingSetup;//es para saber si todabia esta preparandose la escena,osea esta la UI que aparece en el comienzo
+
+ private SingletonVariables _SingletonVariables;
// Called when the node enters the scene tree for the first time.
public override void _Ready()
{
boardScript = (BoardManager)GetTree().GetNodesInGroup("BoardManager")[0];//como el script esta en el nodo lo busco de esta manera
- InitGame();//llamo al script que inicia el nivel
+ LevelText = (Label)GetTree().GetNodesInGroup("LevelText")[0];//referencia al texto que muestra el nivel actual
+ FoodText = (Label)GetTree().GetNodesInGroup("FoodText")[0];//referencia al texto que muestra la comida
+ fondoColorUI = (ColorRect)GetTree().GetNodesInGroup("fondoColorUI")[0];//referencia al fondo de la UI
+
+ _SingletonVariables = GetNode("/root/SingletonVariables");//para acceder al singleton desde el player y cambiar el número del nivel y guardar el puntaje
+ level = _SingletonVariables.level;
+
+ InitGame();//llamo al script que inicia el nivel lo hago desde escena principal
+
+ //inicioEscenario = true;
}
+
- private void InitGame()//inicializa el juego
+ public void InitGame()//inicializa el juego
{
- enemies.Clear();//antes de iniciar el nivel vaciamos la lista
- boardScript.SetupScene(16);//llamo a la función que esta en board manager para crear la escena toma como parametro el nivel actual que es la cantidad de enemigos
+ //inicioEscenario = true;//verifico que ya se incio el escenario
+ doingSetup = true;//cuando inciamos el juego se muestra por pantalla la UI que muestra el nivel actual
+ enemies.Clear();//antes de iniciar el nivel vaciamos la lista
+ boardScript.SetupScene(level);//llamo a la función que esta en board manager para crear la escena toma como parametro el nivel actual que es la cantidad de enemigos
+ LevelText.Text = "Day " + level;//el día más lo que alla en la variable level
+ fondoColorUI.Visible = true;//para que se vea el fondo
+ FoodText.Visible = false;//que no se vea el texto de comida
}
+ public void HideLevelImage()//para dejar de mostrar la imagen inicial esa que dice day 1 más el fondo
+ {
+ fondoColorUI.Visible = false;//que se deje de ver el fondo
+ LevelText.Visible = false;//se deja de ver el texto
+ FoodText.Visible = true;//muestro el texto de la comida
+ doingSetup = false;//puedo mover el personaje
+ }
+
+ public void _on_TimerlevelStarDelay_timeout()//cuando termina el tiempo del starDelay OJO MANEJADO POR EL NODO TIMER QUE ESTA EN LA ESCENA
+ {
+ HideLevelImage();//deja de mostrar la imagen inicial
+ }
+
+
+
+
public void GameOver()//posiblemente esto despues voy a tener que correguirlo
{
+
+ LevelText.Text = "After " + level + " Days\nyou starved";//si es game over cambio el texto
+ fondoColorUI.Visible = true;//hago visible el fondo
+ LevelText.Visible = true;//hace visible el texto
Visible = false;//desactivo el nodo que contiene este script,esto tendria que desactivar el Game manager para saber que es Game over puede que lo haga de otra manera
}
@@ -51,9 +95,9 @@ private async void MoveEnemies()//esta función sera como una corrutina la utili
// // Called every frame. 'delta' is the elapsed time since the previous frame.
public override void _PhysicsProcess(float delta)
{
- if(playersTurn || enemiesMoving)//si es el turno de jugador o los enemigos estan moviendose
+ if(playersTurn || enemiesMoving || doingSetup)//si es el turno de jugador o los enemigos estan moviendose se esta inciando la escena con el menu
{
- return;//salimos de la función y no hacemos nada
+ return;//salimos de la función y no movemos el personaje
}
MoveEnemies();//caso contrario iniciamos el movimiento de los enemigos nose si funcione el delay
@@ -63,4 +107,8 @@ public void AddEnemyToList(KinematicBody2D enemy)//los enemigos se agregan cuans
{
enemies.Add(enemy);//agrega el enemigo a la lista
}
+
+
+
+
}
diff --git a/codigos/Player.cs b/codigos/Player.cs
index 8792558..c7446cc 100644
--- a/codigos/Player.cs
+++ b/codigos/Player.cs
@@ -12,6 +12,8 @@ public class Player : MovingObject
private int food;//para llevar la cuenta de cuanta comida tiene
private AnimationNodeStateMachinePlayback playback;//referencia al nodo animation tree con el parametro para acceder a los stados
+ private SingletonVariables _SingletonVariables;
+ private Label _FoodText;
//private bool seMovio = false;
Wall hitWall;//referencia a la pared que esta chocando
@@ -26,11 +28,17 @@ public override void _Ready()
//rb2D = thi;por ahora voy a evitarla
animator = GetNode("AnimationTree");//referencia al animation three
_GameManager = (GameManager)GetTree().GetNodesInGroup("GameManager")[0];
- food = _GameManager.playerFoodPoint;//la comida inicial del jugador busco desde el game manager
-
+
+
+
playback = (AnimationNodeStateMachinePlayback)GetNode("AnimationTree").Get("parameters/playback");//accedo al nodo animation three y a la propiedad de las maquinas de estado
playback.Start("PlayerIdle");//animación inicial player estatico osea igle
+ _SingletonVariables = GetNode("/root/SingletonVariables");//para acceder al singleton desde el player y cambiar el número del nivel y guardar el puntaje
+
+ _FoodText = (Label)GetTree().GetNodesInGroup("FoodText")[0];//accedo al nodo label que muestra la comida en la pantalla
+ food = _SingletonVariables.food;//la comida inicial del jugador busco desde el game manager
+ _FoodText.Text = "food " + food;//comida del jugador
}
@@ -50,6 +58,7 @@ protected override Vector2 RaycastDirection(int xDir, int Ydir)//cuando el rayca
protected override void AttempMove(int xDir, int yDir)
{
food --;//en cada paso dismunuje la comida
+ _FoodText.Text = "food " + food;//comida del jugador
base.AttempMove(xDir,yDir);//ejecuto esta acción
CheckIfGameOver();//siempre que se decrementa la comida verificamos si es game over
_GameManager.playersTurn = false;//luego terminamos el turno del jugador
@@ -57,9 +66,9 @@ protected override void AttempMove(int xDir, int yDir)
public override void _PhysicsProcess(float delta)
{
- if(!_GameManager.playersTurn)//si no es el turno del jugador
+ if(!_GameManager.playersTurn || _GameManager.doingSetup)//si no es el turno del jugador o se esta inciando la escena con el menu
{
- return;//dejamos de ejecutar
+ return;//dejamos de ejecutar y el personaje no se mueve
}
int horizontal = Convert.ToInt16((Input.GetActionStrength("d") - Input.GetActionStrength("a")) * dimensionSprite);//mover izquierda derecha
@@ -71,25 +80,13 @@ public override void _PhysicsProcess(float delta)
if(horizontal != 0 || vertical != 0 )///nos estamos moviendo
{
AttempMove(horizontal,vertical);//movemos el personaje
- //if(!seMovio)//esto es para prueba
- //{
- //seMovio = true;
- //
- //}
- //GD.Print(rayo.IsColliding());//esto es para prueba compruebo si el rayo colisiona
- // await ToSignal(GetTree().CreateTimer(0.1f),"timeout");//esto es para prueba
- //seMovio = false;//esto es para prueba
}
}
-
-
-
-
protected override void OnCantMoveStaticBody2D(StaticBody2D pared)//si "NO" podemos movernos recibe el cuerpo estatico y es un una pared.Este es un metodo que se sobreescribe
{
- if(pared.IsInGroup("Wall"))
+ if(pared.IsInGroup("Wall"))//si esta en el grupo suelo
{
hitWall = (Wall)pared.GetParent();//con esto tendria que poder acceder al script que maneja ese piso para cambiar la figura al ser golpeado
}
@@ -117,6 +114,7 @@ private void Restart()
public void LoseFood(int loss)
{
food -= loss;//cantidad de comida que pierdo
+ _FoodText.Text = " - "+ loss +" food " + food;//comida del jugador que pierde al ser golpeado
playback.Travel("PlayerHit");//activo animación daño
CheckIfGameOver();//verifico sino todavia tengo comida osea sino es game over
}
@@ -127,17 +125,23 @@ public async void _on_Area2D_area_entered(Area _area)//esta funcion tiene una co
{
enable = false;//el jugador no se puede mover
//aqui tendria que venir una transcición al cambiar de pantalla
+ _SingletonVariables.level += 1;
+ _SingletonVariables.food = food;
await ToSignal(GetTree().CreateTimer(1.0f),"timeout");//detengo por 1 segundo
Restart();//reinicio el nivel,voy a tener que utilizar un singleton para guardar puntajes
}
if(_area.IsInGroup("Food"))
{
food += pointPerFood;//sumo el puntaje de la comida
+ _FoodText.Text = " + "+ pointPerFood +" food " + food;//comida del jugador
+ (_area.GetParent().GetChild(0) as Area2D).Monitoring = false;//para que el cuerpo deje de ser detectado,porque aunque desaparesca el sprite sigue estando la colisión del area detectando cuerpos
(_area.GetParent() as Sprite).Visible = false;//hago invisible el nodo padre que contiene el sprite por lo tanto todos los hijos tendrian que ser inviisble
}
if(_area.IsInGroup("Soda"))
{
food += pointPerSOda;//sumo el puntaje de la soda
+ _FoodText.Text = " + "+ pointPerSOda +" food " + food;//comida del jugador
+ (_area.GetParent().GetChild(0) as Area2D).Monitoring = false;//para que el cuerpo deje de ser detectado,porque aunque desaparesca el sprite sigue estando la colisión del area detectando cuerpos
(_area.GetParent() as Sprite).Visible = false;//hago invisible el nodo padre que contiene el sprite por lo tanto todos los hijos tendrian que ser inviisble
}
}
diff --git a/codigos/SingletonVariables.cs b/codigos/SingletonVariables.cs
new file mode 100644
index 0000000..1ae3110
--- /dev/null
+++ b/codigos/SingletonVariables.cs
@@ -0,0 +1,20 @@
+using Godot;
+using System;
+
+public class SingletonVariables : Node
+{
+ public int food = 100;
+ public int level = 1;
+
+ // Called when the node enters the scene tree for the first time.
+ public override void _Ready()
+ {
+
+ }
+
+// // Called every frame. 'delta' is the elapsed time since the previous frame.
+// public override void _Process(float delta)
+// {
+//
+// }
+}
diff --git a/escenas/ControlUI.tscn b/escenas/ControlUI.tscn
new file mode 100644
index 0000000..1957af8
--- /dev/null
+++ b/escenas/ControlUI.tscn
@@ -0,0 +1,76 @@
+[gd_scene load_steps=4 format=2]
+
+[ext_resource path="res://fonts/PressStart2P-Regular.ttf" type="DynamicFontData" id=1]
+
+[sub_resource type="DynamicFont" id=1]
+size = 50
+font_data = ExtResource( 1 )
+
+[sub_resource type="DynamicFont" id=2]
+size = 20
+font_data = ExtResource( 1 )
+
+[node name="ControlUI" type="Control"]
+anchor_right = 1.0
+anchor_bottom = 1.0
+__meta__ = {
+"_edit_use_anchors_": false
+}
+
+[node name="fondoColorUI" type="ColorRect" parent="." groups=[
+"fondoColorUI",
+]]
+anchor_right = 1.0
+anchor_bottom = 1.0
+color = Color( 0, 0, 0, 1 )
+__meta__ = {
+"_edit_use_anchors_": false
+}
+
+[node name="HBoxContainer" type="VBoxContainer" parent="."]
+anchor_top = 0.5
+anchor_right = 1.0
+anchor_bottom = 0.5
+margin_top = -23.0
+margin_bottom = 271.0
+__meta__ = {
+"_edit_use_anchors_": false
+}
+
+[node name="CenterContainerLevelText" type="CenterContainer" parent="HBoxContainer"]
+margin_right = 1024.0
+margin_bottom = 50.0
+
+[node name="LevelText" type="Label" parent="HBoxContainer/CenterContainerLevelText" groups=[
+"LevelText",
+]]
+margin_left = 387.0
+margin_right = 637.0
+margin_bottom = 50.0
+custom_fonts/font = SubResource( 1 )
+text = "Day 1"
+align = 1
+valign = 1
+__meta__ = {
+"_edit_use_anchors_": false
+}
+
+[node name="CenterContainerFoodText" type="CenterContainer" parent="HBoxContainer"]
+margin_top = 54.0
+margin_right = 1024.0
+margin_bottom = 353.0
+
+[node name="MarginContainerFoodText" type="MarginContainer" parent="HBoxContainer/CenterContainerFoodText"]
+margin_left = 432.0
+margin_right = 592.0
+margin_bottom = 299.0
+custom_constants/margin_top = 279
+
+[node name="FoodText" type="Label" parent="HBoxContainer/CenterContainerFoodText/MarginContainerFoodText" groups=[
+"FoodText",
+]]
+margin_top = 279.0
+margin_right = 160.0
+margin_bottom = 299.0
+custom_fonts/font = SubResource( 2 )
+text = "FoodText"
diff --git a/escenas/Escena_Principal.tscn b/escenas/Escena_Principal.tscn
index 4781ee6..7390ab7 100644
--- a/escenas/Escena_Principal.tscn
+++ b/escenas/Escena_Principal.tscn
@@ -1,6 +1,7 @@
-[gd_scene load_steps=4 format=2]
+[gd_scene load_steps=5 format=2]
[ext_resource path="res://escenas/characters/Player.tscn" type="PackedScene" id=1]
+[ext_resource path="res://escenas/ControlUI.tscn" type="PackedScene" id=2]
[ext_resource path="res://escenas/GameManager.tscn" type="PackedScene" id=27]
[ext_resource path="res://codigos/Escena_Principal.cs" type="Script" id=28]
@@ -10,6 +11,8 @@
script = ExtResource( 28 )
GameManager = ExtResource( 27 )
+[node name="GameManager" parent="." instance=ExtResource( 27 )]
+
[node name="camara" type="Node2D" parent="."]
[node name="Camera2D" type="Camera2D" parent="camara"]
@@ -22,7 +25,14 @@ zoom = Vector2( 0.54, 0.54 )
"Board",
]]
-[node name="GameManager" parent="." instance=ExtResource( 27 )]
-
[node name="Player" parent="." instance=ExtResource( 1 )]
position = Vector2( 0, 224 )
+
+[node name="TimerlevelStarDelay" type="Timer" parent="."]
+one_shot = true
+autostart = true
+
+[node name="Canvas" type="CanvasLayer" parent="."]
+
+[node name="ControlUI" parent="Canvas" instance=ExtResource( 2 )]
+[connection signal="timeout" from="TimerlevelStarDelay" to="GameManager" method="_on_TimerlevelStarDelay_timeout"]
diff --git a/project.godot b/project.godot
index 1b48526..70b9e75 100644
--- a/project.godot
+++ b/project.godot
@@ -19,6 +19,10 @@ config/name="Rogue en Godot"
run/main_scene="res://escenas/Escena_Principal.tscn"
config/icon="res://icon.png"
+[autoload]
+
+SingletonVariables="*res://codigos/SingletonVariables.cs"
+
[display]
window/size/always_on_top=true