MONSTER DEFENDERS - FDG Productions

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

Moderator: julianmartinez16

User avatar
daniela.atencia
Posts: 57
Joined: Tue Jan 22, 2019 6:20 am

Re: MONSTER DEFENDERS - FDG Productions

Post by daniela.atencia » Tue Aug 27, 2019 7:39 am

Sprint 7

Fecha de inicio: 27 de agosto

Fecha final: 3 de septiembre

Actividades:

- Detección de enemigos (Jhon Mayuza)
- Pooling de objetos - spawn (Freddy Muriel)
- Barra de vida y menú(Daniela Atencia)
Daniela Atencia

Programación y diseño orientado a objeto, 2019-2.

User avatar
daniela.atencia
Posts: 57
Joined: Tue Jan 22, 2019 6:20 am

Re: MONSTER DEFENDERS - FDG Productions

Post by daniela.atencia » Tue Aug 27, 2019 10:47 pm

¿Qué hemos hecho?:

-Código de Bullet.

Code: Select all

public class Bullet : MonoBehaviour
{
    public Transform objetivo;
    public float velocidad = 20;

    private Transform myTransform;

    void Awake()
    {
        myTransform = transform;
    }

    void Start()
    {
        GameObject go = GameObject.FindGameObjectWithTag("Enemigo");
        objetivo = go.transform;
        // rotate the projectile to aim the target:
        myTransform.LookAt(objetivo);
    }

    // Update is called once per frame
    void Update()
    {
        // distance moved since last frame:
        float seguirObjetivo = velocidad * Time.deltaTime;
        // translate projectile in its forward direction:
        myTransform.Translate(Vector3.forward * seguirObjetivo);
    }
}
- Código de Bullet Spawner.

Code: Select all

public class BulletSpawner : MonoBehaviour
{

    public GameObject bala;
    public bool aparecer = false;
    public float tiempoReaparicion;
    public float frecuencia;

    void Start()
    {
        InvokeRepeating("Aparicion", tiempoReaparicion, frecuencia);
    }

    public void Aparicion()
    {
        Instantiate(bala, transform.position, transform.rotation);
        if (aparecer)
        {
            CancelInvoke("Aparicion");
        }
    }
}
- Código de enemigos. (en progreso)

¿Qué falta por hacer?:

-Programación y sprint de esta semana.

¿Qué problemas hemos tenido:

-Algunos errores en los códigos.
Daniela Atencia

Programación y diseño orientado a objeto, 2019-2.

User avatar
JhonMayuza
Posts: 11
Joined: Tue Jul 16, 2019 6:26 am

Re: MONSTER DEFENDERS - FDG Productions

Post by JhonMayuza » Tue Aug 27, 2019 10:49 pm

Scripts usados hasta el momento en el proyecto.
Movimiento (Puntos de Guia)

Code: Select all

public class Waypoints : MonoBehaviour
{

    public Transform[] waypoints;

}
El codigo es utilizado para guardar todos los waypoints en un arreglo, de manera que el script de movimiento del enemigo pueda seguirlos cuando se encuentre en este estado.

Movimiento (Enemigo)

Code: Select all

public class Enemigo: MonoBehaviour
{

    public float velocidad;
    private Waypoints wpoints;

    private int contador;

    void Start()
    {
        wpoints = GameObject.FindGameObjectWithTag("Waypoints").GetComponent<Waypoints>();
    }

    void Update()
    {
        transform.position = Vector3.MoveTowards(transform.position, wpoints.waypoints[contador].position, velocidad * Time.deltaTime);

        if(Vector3.Distance(transform.position, wpoints.waypoints[contador].position) < 0.1f)
        {
            contador++;
        }
    }
}
Este codigo, sin embargo, tiene un problema, que es que al llegar al ultimo waypoint, el contador aumentara, pero ya no habra mas waypoints a los que hacer referencia, por lo que unity empezara a lanzar errores en masa, esto sera arreglado haciendo que el objeto sea destruido al llegar al ultimo waypoint, asi mismo como otras acciones que deba hacer al llegar a este estado.

Torre (Spawn de proyectiles)

Code: Select all

public class SpawnDeBalas : MonoBehaviour
{

    public GameObject bala;
    public bool aparecer = false;
    public float tiempoReaparicion;
    public float frecuencia;

    void Start()
    {
        InvokeRepeating("Aparicion", tiempoReaparicion, frecuencia);
    }

    public void Aparicion()
    {
        Instantiate(bala, transform.position, transform.rotation);
        if (aparecer)
        {
            CancelInvoke("Aparicion");
        }
    }
}
Este codigo es usado para probar el script de las balas, y su seguimiento al jugador.

Bala:

Code: Select all

public class Bala : MonoBehaviour
{
    public Transform objetivo;
    public float velocidad = 20;

    private Transform myTransform;

    void Awake()
    {
        myTransform = transform;
    }

    void Start()
    {
        GameObject go = GameObject.FindGameObjectWithTag("Enemigo");
        objetivo = go.transform;
        // rotate the projectile to aim the target:
        myTransform.LookAt(objetivo);
    }

    // Update is called once per frame
    void Update()
    {
        // distance moved since last frame:
        float seguirObjetivo = velocidad * Time.deltaTime;
        // translate projectile in its forward direction:
        myTransform.Translate(Vector3.forward * seguirObjetivo);
    }
}
El inconveniente de este script es que la bala falla el objetivo si este va a mucha velocidad, y no sabemos que comportamiento tendra si se hace la prueba con mas de 1 enemigo en el escenario.

El prototipo de pruebas se puede encontrar en el repositorio.
Image
Jhon Esteban Mayuza Villegas - Programacion orientada a objetos
2019-02

User avatar
xacarana
Site Admin
Posts: 1213
Joined: Fri Jan 15, 2016 6:13 pm

Re: MONSTER DEFENDERS - FDG Productions

Post by xacarana » Fri Aug 30, 2019 6:25 am

Muy bien, recuerden encapsular los miembros datos y si necesitan que las propiedades tengan propiedades de edición desde el editor de Unity, recuerden que hay una forma de hacerlo.

Image
Andrés Bedoya Tobón
Profesor
"I only smile in the dark, I only smile when it's complicated" Raybiez

User avatar
daniela.atencia
Posts: 57
Joined: Tue Jan 22, 2019 6:20 am

Re: MONSTER DEFENDERS - FDG Productions

Post by daniela.atencia » Fri Aug 30, 2019 9:16 pm

¿Qué hemos hecho?

-menú



¿Qué falta por hacer?

-polling
-barra de vida

¿Qué problemas hemos tenido?

-problemas con la programación
Daniela Atencia

Programación y diseño orientado a objeto, 2019-2.

User avatar
daniela.atencia
Posts: 57
Joined: Tue Jan 22, 2019 6:20 am

Re: MONSTER DEFENDERS - FDG Productions

Post by daniela.atencia » Tue Sep 03, 2019 11:21 pm

Sprint 8

Fecha de inicio: 3 de septiembre

Fecha final: 10 de septiembre

Actividades:

- Daño de enemigos (Jhon Mayuza)
- Mejorar oleadas (Freddy Muriel)
- Opción de mejora de torres(Daniela Atencia)
Daniela Atencia

Programación y diseño orientado a objeto, 2019-2.

User avatar
fredy muriel
Posts: 6
Joined: Tue Jul 16, 2019 6:27 am

Re: MONSTER DEFENDERS - FDG Productions

Post by fredy muriel » Tue Sep 03, 2019 11:39 pm

qué se ha hecho?

se continua con la elaboración del código y se hacen las correcciones mencionadas en clase, las cuales eran de como reciclar las unidades para que no crearan una sobrecarga en la memoria. para esto nos guiamos de los links de los vídeos que se dejan a continuación






código implementado

Code: Select all

public class Nueva_Oleada : MonoBehaviour
{
    public static ArrayList NuevaOleada = new ArrayList();

    // Start is called before the first frame update
    void Start()
    {
        GameObject unidad = GameObject.Find("unidad_01");
        GameObject temporal;
        Vector3 incremento = new Vector3(0, 1);
        Vector3 posicionInicial = unidad.transform.position;

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

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

Code: Select all

 void Start()
        {
            posicion_Siguiente = ruta.transform.GetChild(0).position;

        }
        
    }

    // Update is called once per frame
    void Update()
    {
        Vector3 direccion = posicion_Siguiente - this.transform.position;
        this.transform.position += direccion * velocidad * Time.deltaTime;
        if (direccion.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);
            }

        }
    }
}
qué falta por hacer?

juntar los proyectos
el daño del enemigo

qué dificultades hemos tenido?

en la ejecución del código
fredy muriel programación y diseño orientado a objetos

User avatar
daniela.atencia
Posts: 57
Joined: Tue Jan 22, 2019 6:20 am

Re: MONSTER DEFENDERS - FDG Productions

Post by daniela.atencia » Fri Sep 06, 2019 7:46 pm

¿Qué hemos hecho?

-Código de salud (para daño de personajes)

Code: Select all

public class Salud : MonoBehaviour
{
    public int salud = 20;

    void OnTriggerEnter(Collider collider)
    {
        if (collider.gameObject.CompareTag("Bala"))
        {
            salud -= 2;
            Destroy(gameObject);
        }
    }

    void Update()
    {
        if (salud == 0)
        {
            Destroy(this.gameObject);
        }
    }
}
-Intento de mejora de torres.

¿Qué falta por hacer?

-Hacer que funcione la mejora de torres y el sistema de monedas.

¿Qué dificultades hemos tenido?

-Comunicación.
-Errores en la programación.
Daniela Atencia

Programación y diseño orientado a objeto, 2019-2.

User avatar
xacarana
Site Admin
Posts: 1213
Joined: Fri Jan 15, 2016 6:13 pm

Re: MONSTER DEFENDERS - FDG Productions

Post by xacarana » Tue Sep 10, 2019 7:30 am

Image

Esta pendiente el avance del día de hoy, tienen hasta las 11:59, además deben publicar la planeación del nuevo sprint.
Andrés Bedoya Tobón
Profesor
"I only smile in the dark, I only smile when it's complicated" Raybiez

User avatar
daniela.atencia
Posts: 57
Joined: Tue Jan 22, 2019 6:20 am

Re: MONSTER DEFENDERS - FDG Productions

Post by daniela.atencia » Tue Sep 10, 2019 10:31 pm

Sprint 9

Fecha de inicio: 10 de septiembre

Fecha final: 17 de septiembre

Actividades:

- Parte gráfica, ilustraciones (Jhon Mayuza)
- Mejora enemigos y oleadas(Freddy Muriel)
- Mejora vidas(Daniela Atencia)
- Preparación para presentación (todos)
Daniela Atencia

Programación y diseño orientado a objeto, 2019-2.

Post Reply