League of Morgan - Hackveneno

Programación Orientada a Objetos (Tower defense - kingdom rush)

Moderator: julianmartinez16

User avatar
HugoHernandez2000
Posts: 14
Joined: Tue Jan 22, 2019 2:06 pm

Re: League of Morgan - Hackveneno

Post by HugoHernandez2000 » Tue Feb 26, 2019 11:14 pm

Actividades Específicas de la Semana 5 (25/02/2019 – 03/03/2019)
• Realizar el Pooling del juego
• Realizar el script de PoolingUnidad
• Editar el script de Unidad
• Dar solución final a todos los errores que se tienen esta el momento.

Martes (26/02/2019)
1. ¿Qué hemos hecho?
Se realizó el código del PoolingUnidad y se implementó en el juego (main camera), se editó el código del script unidad.

2. ¿Qué vamos a hacer?
Dar solución final a todos los errores que se tienen hasta el momento.

3. ¿Qué dificultades hemos tenido?
Uno de los integrantes no tiene computador, lo cual ha retasado un poco la realización de las diferentes actividades. Al momento de ejecutar el juego el enemigo(barco) se desaparece al pasar por el segundo punto de la ruta. Otro problema es a la hora de generar los barcos, los cuales no se están generando las copias de estos.

Evidencias:

Image

Evidencias Códigos:

. PoolingUnidad:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PoolingUnidades : MonoBehaviour {

public static ArrayList unidades = new ArrayList();


// Use this for initialization
void Start () {
GameObject unidad = GameObject.Find("unidad_01");
GameObject temp;
Vector3 incremento = new Vector3(0, 1);
Vector3 posicion_actual = unidad.transform.position;

for (int i = 0; i<10; i++)
{
temp = (GameObject)Instantiate(unidad, posicion_actual + incremento, Quaternion.identity);
posicion_actual = temp.transform.position;
unidades.Add(temp);
}


}

// Update is called once per frame
void Update () {

}
}

.Unidad:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Unidad : MonoBehaviour {

public GameObject ruta;

private int indice;
private Vector3 posicion_inicial;
private Vector3 posicion_siguiente;
private float vel =5f;
private float distancia_punto = 0.5f;
private bool esta_viva;



// Use this for initialization
void Start () {
posicion_inicial = this.transform.position;
posicion_siguiente = ruta.transform.GetChild(0).position;
}

// Update is called once per frame
void Update () {
if (esta_viva)
{
Vector3 dir = posicion_siguiente - this.transform.position;
this.transform.position += dir * vel * Time.deltaTime;

if (dir.magnitude <= distancia_punto)
{
if (indice + 1 < ruta.transform.childCount)
{
indice++;
posicion_siguiente = ruta.transform.GetChild(indice).position;
Debug.Log(" xs" + posicion_siguiente.x + " ys" + posicion_siguiente.y);
}
else
{
indice = 0;
this.transform.position = posicion_inicial;
posicion_siguiente = ruta.transform.GetChild(0).position;
}
}
}
}


public bool Esta_viva
{
get
{
return esta_viva;
}

set
{
esta_viva = value;
}
}
}
Hugo Alejandro Hernández Cárdenas
POO#2

User avatar
HugoHernandez2000
Posts: 14
Joined: Tue Jan 22, 2019 2:06 pm

Re: League of Morgan - Hackveneno

Post by HugoHernandez2000 » Sat Mar 02, 2019 11:40 pm

Sábado (02/03/2019)
1. ¿Qué hemos hecho?

Se subió por primera vez el proyecto al repositorio BitBucket.

2. ¿Qué vamos a hacer?

Solucionar los problemas del código, tratar de generar las copias reutilizadas de los barcos.

3. ¿Qué dificultades hemos tenido?

Uno de los integrantes no tiene computador, lo cual ha retasado un poco la realización de las diferentes actividades. Al momento de ejecutar el juego el enemigo(barco) se desaparece al pasar por el segundo punto de la ruta. Otro problema es a la hora de generar los barcos, los cuales no se están generando las copias de estos. También se presentan errores en el código del juego.

Evidencias:

Image

Image

Image

Image

Image

Image
Hugo Alejandro Hernández Cárdenas
POO#2

User avatar
HugoHernandez2000
Posts: 14
Joined: Tue Jan 22, 2019 2:06 pm

Re: League of Morgan - Hackveneno

Post by HugoHernandez2000 » Tue Mar 05, 2019 11:37 pm

Sprint # 6

Actividades Especificas de la Semana 6 (04/03/19-10/03/19)
• Rediseñar el codigo de las Torretas Alidas
• Buscar la imagen que va a ser usada como bala en las torretas
• Crear la Clase Bala en el juego y editarla
• Modificar la Clase Unidad
• Realizar la clonación del repositorio en el PC de uno de los integrantes

1. ¿Qué hemos hecho?
Se realizó la clonación del repositorio del juego en el PC de una de los integrantes. También se realizó la edición del codigo de las Torretas Aliadas

2. ¿Qué vamos a hacer?
Buscar y tratar de darle solución a los problemas de codigo, realizar la creacion de la Clase Bala y su respectivo codigo, modificar la clase Unidad y buscar la imagen que va a ser usada como bala ( flechas).

3. ¿Qué dificultades hemos tenido?
Al momento de ejecutar el juego el enemigo(barco) se desaparece al pasar por el segundo punto de la ruta. Otro problema es a la hora de generar los barcos, los cuales no se están generando las copias de estos. También se presentan errores en el código del juego.

Evidencas;

Image

Image

Codigo:

. Torre.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Torre : MonoBehaviour {

private GameObject enemigo;
private bool esta_activa;
private float distancia_umbral = 20;

public GameObject Enemigo
{
get
{
return enemigo;
}

set
{
enemigo = value;
}
}


GameObject BuscarEnemigoCercano()
{
ArrayList enemigos = PoolingUnidades.unidades;
GameObject temp;
foreach (Object item in enemigos)
{
temp = (GameObject)item;
if (Vector3.Distance(temp.transform.position, this.transform.position) < distancia_umbral)
{
return temp;
}
}
return null;
}

// Use this for initialization
void Start () {

}

// Update is called once per frame
void Update () {

Enemigo = BuscarEnemigoCercano();
if (Enemigo!= null)
{
Debug.DrawLine(this.transform.position, enemigo.transform.position, Color.yellow);
}

float dist = (Enemigo.transform.position - this.transform.position).magnitude;

if(dist <= distancia_umbral)
{
Debug.DrawLine(this.transform.position,Enemigo.transform.position,Color.red);
}
}
}
Hugo Alejandro Hernández Cárdenas
POO#2

User avatar
felipeh323
Posts: 3
Joined: Tue Jan 22, 2019 2:09 pm

Re: League of Morgan - Hackveneno

Post by felipeh323 » Sat Mar 09, 2019 1:43 pm

Image
Image
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Bala : MonoBehaviour
{


private GameObject objetivo;
private float velocidad = 2;
// Start is called before the first frame update
void Start()
{

}


// Update is called once per frame
void Update()
{
Vector3 direccion;
if (objetivo != null)
{
direccion = objetivo.transform.position - this.transform.position;
this.transform.position += velocidad * direccion * Time.deltaTime;

}

}
public void ActivarBala(Torre torre)
{
objetivo = torre.Enemigo;
}
}
Image
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Unidad : MonoBehaviour {

public GameObject ruta;

private int indice;
private Vector3 posicion_inicial;
private Vector3 posicion_siguiente;
private float vel =5f;
private float distancia_punto = 0.5f;
private bool esta_viva;



// Use this for initialization
void Start () {
posicion_inicial = this.transform.position;
posicion_siguiente = ruta.transform.GetChild(0).position;
}

// Update is called once per frame
void Update () {
if (esta_viva)
{
Vector3 dir = posicion_siguiente - this.transform.position;
this.transform.position += dir * vel * Time.deltaTime;

if (dir.magnitude <= distancia_punto)
{
if (indice + 1 < ruta.transform.childCount)
{
indice++;
posicion_siguiente = ruta.transform.GetChild(indice).position;
Debug.Log(" xs" + posicion_siguiente.x + " ys" + posicion_siguiente.y);
}
else
{
indice = 0;
this.transform.position = posicion_inicial;
posicion_siguiente = ruta.transform.GetChild(0).position;
}
}
}
}



void OnTriggerEnter2D(Collider2D otro)
{
if (otro.gameObject.tag == "bala")
{
Destroy(otro.gameObject);
}
}
public bool Esta_viva
{
get
{
return esta_viva;
}

set
{
esta_viva = value;
}
}
}
Image
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Torre : MonoBehaviour {

private GameObject enemigo;
private bool esta_activa;
private float distancia_umbral = 20;

public GameObject Enemigo
{
get
{
return enemigo;
}

set
{
enemigo = value;
}
}


GameObject BuscarEnemigoCercano()
{
ArrayList enemigos = PoolingUnidades.unidades;
GameObject temp;
foreach (Object item in enemigos)
{
temp = (GameObject)item;
if (Vector3.Distance(temp.transform.position, this.transform.position) < distancia_umbral)
{
return temp;
}
}
return null;
}

// Use this for initialization
void Start () {

}

// Update is called once per frame
void Update () {

Enemigo = BuscarEnemigoCercano();
if (Enemigo!= null)
{
Debug.DrawLine(this.transform.position, enemigo.transform.position, Color.yellow);
}
void Disparar()
{
GameObject obj = (GameObject)Instantiate(GameObject.Find("bala"), this.transform.position, Quaternion.identity);
Bala bala = obj.GetComponent<Bala>();
bala.ActivarBala(this);
}


float dist = (Enemigo.transform.position - this.transform.position).magnitude;

if(dist <= distancia_umbral)
{
Debug.DrawLine(this.transform.position,Enemigo.transform.position,Color.red);
}
}
}
Felipe herrera Arteaga
POO #2

User avatar
HugoHernandez2000
Posts: 14
Joined: Tue Jan 22, 2019 2:06 pm

Re: League of Morgan - Hackveneno

Post by HugoHernandez2000 » Tue Mar 12, 2019 11:34 pm

Sprint # 7
Actividades Especificas de la Semana 7 (11/03/2019-17/03/2019)
• Buscar la barra de vida adecuada
• Realizar el script de la lógica de la barra de vida
• Solucionar Errores Anteriores
• Realizar una revisión de todos los video tutoriales para tratar de solucionar alguno de los errores

Martes (11/03/2019)

1. ¿Qué hemos hecho?
Se realizo el script con la logica que va a tener la barra de vida de los barcos.
2. ¿Qué vamos a hacer?
Buscar la barra de vida roja y verde, para luego implementarlas en el juego, revisar todos los video tutoriales para tratar de darle solución a los errores que se vienen presentando hace varios días.
3. ¿Qué dificultades hemos tenido?
Al momento de ejecutar el juego el enemigo(barco) se desaparece al pasar por el segundo punto de la ruta. Otro problema es a la hora de generar los barcos, los cuales no se están generando las copias de estos. También se presentan errores en el código del juego.

Evidencias:

Image

Codigo Lógica de Barra de Vida:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class LogicaBarraVida : MonoBehaviour {


public GameObject unidad0_1;
public GameObject barra_verde;
public GameObject barra_roja;
float escala = .001f;
SpriteRenderer sr;

// Use this for initialization
void Start () {
sr = barra_verde.GetComponent<SpriteRenderer>();
}

// Update is called once per frame
void Update () {
if (sr.transform.localScale.x > 0)
{
sr.transform.localScale -= new Vector3(escala, 0);
barra_verde.transform.position = unidad0_1.transform.position - new Vector3(.3f-sr.bounds.size.x/2,.4f);
barra_roja.transform.position = unidad0_1.transform.position - new Vector3(.05f, -4f);

}
}
}
Hugo Alejandro Hernández Cárdenas
POO#2

User avatar
HugoHernandez2000
Posts: 14
Joined: Tue Jan 22, 2019 2:06 pm

Re: League of Morgan - Hackveneno

Post by HugoHernandez2000 » Fri Mar 15, 2019 11:49 pm

Viernes (15/03/19)
1. Que se ha hecho?
Se encontró los respectivos pngs para la barra de vida
2. Que vamos a hacer?
Configurar la posición de las baras de vida, es decir, ubicarlas bien en el espacio del mapa
3. Que dificultades hemos encontrado?
Al momento de ejecutar el juego el enemigo(barco) se desaparece al pasar por el segundo punto de la ruta. Otro problema es a la hora de generar los barcos, los cuales no se están generando las copias de estos. También se presentan errores en el código del juego.

Evidencias:

Image
Hugo Alejandro Hernández Cárdenas
POO#2

User avatar
HugoHernandez2000
Posts: 14
Joined: Tue Jan 22, 2019 2:06 pm

Re: League of Morgan - Hackveneno

Post by HugoHernandez2000 » Tue Mar 19, 2019 11:44 pm

Sprint # 8
Actividades Específicas de la Semana 8 (18/03/2019 – 24/03/2019)
• Organizar la barra de vida del barco
• Detectar los errores que se presenta en el proyecto y buscar una solución para estos
1. ¿Qué hemos hecho?
Se organizó la barra de vida del barco
2. ¿Qué vamos a hacer?
Vamos a realizar un barrido de errores, vamos a analizar los errores que se presentan en el código del juego
3. ¿Qué dificultades hemos tenido?
Al momento de ejecutar el juego el enemigo(barco) se desaparece al pasar por el segundo punto de la ruta. Otro problema es a la hora de generar los barcos, los cuales no se están generando las copias de estos. También se presentan errores en el código del juego.

Evidencias:

Image

Image

Nuevo Codigo LogicaBarra:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class LogicaBarraVida : MonoBehaviour {


public GameObject unidad0_1;
public GameObject barra_verde;
public GameObject barra_roja;
float escala = .001f;
SpriteRenderer sr;

// Use this for initialization
void Start () {
sr = barra_verde.GetComponent<SpriteRenderer>();
}

// Update is called once per frame
void Update () {
if (sr.transform.localScale.x > 0)
{
sr.transform.localScale -= new Vector3(escala, 0);
barra_verde.transform.position = unidad0_1.transform.position - new Vector3(1.1f-sr.bounds.size.x/2,-0.8f);
barra_roja.transform.position = unidad0_1.transform.position - new Vector3(0f, -0.5f);

}
}
}
Hugo Alejandro Hernández Cárdenas
POO#2

Post Reply