Skip to content

Commit

Permalink
menus creados
Browse files Browse the repository at this point in the history
  • Loading branch information
kone9 committed Apr 28, 2020
1 parent ca294d9 commit f89e332
Show file tree
Hide file tree
Showing 15 changed files with 215 additions and 30 deletions.
2 changes: 1 addition & 1 deletion .mono/metadata/scripts_metadata.editor
Original file line number Diff line number Diff line change
@@ -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}}}
{"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}}}
2 changes: 1 addition & 1 deletion .mono/metadata/scripts_metadata.editor_player
Original file line number Diff line number Diff line change
@@ -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}}}
{"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}}}
Binary file modified .mono/temp/bin/Debug/Rogue en Godot.dll
Binary file not shown.
Binary file modified .mono/temp/bin/Debug/Rogue en Godot.pdb
Binary file not shown.
Binary file not shown.
Binary file modified .mono/temp/obj/Debug/Rogue en Godot.dll
Binary file not shown.
Binary file modified .mono/temp/obj/Debug/Rogue en Godot.pdb
Binary file not shown.
1 change: 1 addition & 0 deletions Rogue en Godot.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@
<Compile Include="codigos\GameManager.cs" />
<Compile Include="codigos\MovingObject.cs" />
<Compile Include="codigos\Player.cs" />
<Compile Include="codigos\SingletonVariables.cs" />
<Compile Include="codigos\SuelosScript\Suelo1.cs" />
<Compile Include="codigos\Wall.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
Expand Down
26 changes: 24 additions & 2 deletions codigos/Escena_Principal.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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()
{
Expand All @@ -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)
// {
Expand Down
60 changes: 54 additions & 6 deletions codigos/GameManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,21 +12,65 @@ public class GameManager : Node2D
private List<KinematicBody2D> enemies = new List<KinematicBody2D>();//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<SingletonVariables>("/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
}

Expand All @@ -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

Expand All @@ -63,4 +107,8 @@ public void AddEnemyToList(KinematicBody2D enemy)//los enemigos se agregan cuans
{
enemies.Add(enemy);//agrega el enemigo a la lista
}




}
38 changes: 21 additions & 17 deletions codigos/Player.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -26,11 +28,17 @@ public override void _Ready()
//rb2D = thi;por ahora voy a evitarla
animator = GetNode<AnimationTree>("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>("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<SingletonVariables>("/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
}


Expand All @@ -50,16 +58,17 @@ 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
}

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
Expand All @@ -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
}
Expand Down Expand Up @@ -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
}
Expand All @@ -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
}
}
Expand Down
20 changes: 20 additions & 0 deletions codigos/SingletonVariables.cs
Original file line number Diff line number Diff line change
@@ -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)
// {
//
// }
}
76 changes: 76 additions & 0 deletions escenas/ControlUI.tscn
Original file line number Diff line number Diff line change
@@ -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"
Loading

0 comments on commit f89e332

Please sign in to comment.