Rotten Studios - Defiende Tu Kaabluum

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

Moderator: julianmartinez16

User avatar
98jam
Posts: 9
Joined: Mon Feb 01, 2016 8:28 am

Re: Rotten Studios - Defiende Tu Kaabluum

Post by 98jam » Thu Sep 06, 2018 5:37 am

Comienzo de maquetación de la parte gráfica de juego
https://drive.google.com/open?id=1c1Q3s ... xnv1Bty1Ij
Jeferson Alvarez Mesa OOP

User avatar
ScarHand420
Posts: 24
Joined: Thu Jul 26, 2018 6:24 am

Re: Rotten Studios - Defiende Tu Kaabluum

Post by ScarHand420 » Tue Sep 11, 2018 2:38 am

¿ Qué han Hecho ?

Pudimos hacer que el rango de la torre detectara a los enemigos cuando estos entraban, y utilizando la función de cola (Queue). nos sirvió para que la torre se centre al primer enemigo que entre en su rango, hasta que no se desaparezca del rango o muera, la torre no cambia de objetivo.

¿ Qué se va a hacer ?

Correcciones pertinentes mencionadas en la semana pasada y publicar los sprites propios.

¿ Qué dificultades presenta ?

De momento ninguna.

Evidencia:
Image

El código completo esta disponible en el Github.

Code: Select all

private void Attack()
    {
        if (target == null && monsters.Count > 0)
        {
            target = monsters.Dequeue();
        }
    }

    public void OnTriggerEnter2D(Collider2D other)
    {
        if (other.tag == "Monster")
        {
            //target = other.GetComponent<Monster>();
            monsters.Enqueue(other.GetComponent<Monster>());
        }
    }

    public void OnTriggerExit2D(Collider2D other)
    {
        if (other.tag == "Monster")
        {
            target = null;
        }
    }
Carlos Andrés Morales Albarán
  • Programación y diseño orientado a objetos.
:twisted: "~CY@~" :twisted:
-NB3-

User avatar
ScarHand420
Posts: 24
Joined: Thu Jul 26, 2018 6:24 am

Re: Rotten Studios - Defiende Tu Kaabluum

Post by ScarHand420 » Thu Sep 13, 2018 2:39 am

¿ Qué han Hecho ?
  • Se creo una clase llamada (ObjectPool) en la cual esta el arreglo de todos los (gameobjects) que se utilizaran en el juego tanto como los enemigos como las torres y los disparos.
  • Se hizo el sistema de oleadas(ya funcionaba pero ahora esta restringido a que cada vez que se le de al botón se suma un enemigo mas en la oleada, y se bloquea el botón hasta que la oleada termine, tampoco permite poner torres en el transcurso).
  • Se hizo el sistema de vidas, cada enemigo que logre pasar el portal rojo, sera una vida menos para el jugador.
  • Se creo una UI (User interface), en la cual de momento se mostraran dos botones cuando el usuario pierda todas las vidas, uno para resetear el juego, y el otro para salir de el. básicamente es el (Game Over) de nuestro juego.
  • Se hizo el sistema de disparos de la torre, de momento solo persiguen al enemigo, pero se espera que para finales de esta semana, las torres sean completamente funcionales y bajen vida a los enemigos.
¿ Qué se va a hacer ?

publicar los sprites propios.

¿ Qué dificultades presenta ?

De momento ninguna.

En el gif se muestra todo lo mencionado anteriormente.
El código completo está disponible en el Github.
Image
Carlos Andrés Morales Albarán
  • Programación y diseño orientado a objetos.
:twisted: "~CY@~" :twisted:
-NB3-

User avatar
98jam
Posts: 9
Joined: Mon Feb 01, 2016 8:28 am

Re: Rotten Studios - Defiende Tu Kaabluum

Post by 98jam » Thu Sep 13, 2018 4:55 am

Adelanto del diagrama de clases
Falta definir algunas clases y agregar atributos y métodos restantes.
Image
Jeferson Alvarez Mesa OOP

User avatar
ScarHand420
Posts: 24
Joined: Thu Jul 26, 2018 6:24 am

Re: Rotten Studios - Defiende Tu Kaabluum

Post by ScarHand420 » Tue Sep 18, 2018 3:21 am

¿ Qué han Hecho ?

Se aplico unas funciones de Unity para hacer que el proyectil no tuviera siempre la misma dirección sino que varia dependiendo de la posición del enemigo.(En otras palabras el proyectil rota persiguiendo al enemigo.)

¿ Qué se va a hacer ?

publicar sprites propios.

¿ Qué dificultades presenta ?

De momento ninguna.

Evidencia:
Image

Código:

Code: Select all

private void MoveToTarget()
    {
        if (target != null && target.IsActive)
        {
            transform.position = Vector3.MoveTowards(transform.position, target.transform.position, Time.deltaTime * parent.ProjectileSpeed);

            Vector2 dir = target.transform.position - transform.position;

            float angle = Mathf.Atan2(dir.y, dir.x) * Mathf.Rad2Deg;

            transform.rotation = Quaternion.AngleAxis(angle, Vector3.forward);
        }
        else if (!target.IsActive)
        {
            GameManager.Instance.Pool.ReleaseObject(gameObject);
        }
    }
*Codigo completo disponible en el Github*
Carlos Andrés Morales Albarán
  • Programación y diseño orientado a objetos.
:twisted: "~CY@~" :twisted:
-NB3-

User avatar
98jam
Posts: 9
Joined: Mon Feb 01, 2016 8:28 am

Re: Rotten Studios - Defiende Tu Kaabluum

Post by 98jam » Thu Sep 20, 2018 6:13 am

¿ Qué han Hecho ?
Se comenzó el diseño de los sprite sheets del juego

¿ Qué se va a hacer ?
publicar sprites propios.

¿ Qué dificultades presenta ?
De momento ninguna.


Image
Image
Image
Jeferson Alvarez Mesa OOP

User avatar
ScarHand420
Posts: 24
Joined: Thu Jul 26, 2018 6:24 am

Re: Rotten Studios - Defiende Tu Kaabluum

Post by ScarHand420 » Tue Sep 25, 2018 1:59 am

¿ Qué han Hecho ?
Se implementaron barras de vida para los enemigos utilizando sliders, se puso el daño de los proyectiles y la vida de los enemigos incrementa por oleadas, también se hizo una restricción en los Tiles para no poner torres en ciertos tiles, como en este caso el de la tierra, y con el mismo método hicimos que los enemigos solo pudieran caminar siguiendo el patrón de la arena. Se arreglaron ciertos bugs con el sistema de la pool. y con los orderSort, los cuales hacían que los enemigos quedaran debajo de los tiles. también se añadió música de fondo, y el sonido de disparo de las torres, y finalmente se hizo la beta 1.0 la cual sera utilizada en la pre entrega del proyecto.

¿ Qué se va a hacer ?
Continuar con los sprites propios orientados al a temática maya.

¿ Qué dificultades presenta ?
De momento ninguna.

Evidencia:
Image

La Beta 1.0 esta disponible en el GitHub. (Carpeta Releases)
Carlos Andrés Morales Albarán
  • Programación y diseño orientado a objetos.
:twisted: "~CY@~" :twisted:
-NB3-

User avatar
98jam
Posts: 9
Joined: Mon Feb 01, 2016 8:28 am

Re: Rotten Studios - Defiende Tu Kaabluum

Post by 98jam » Tue Sep 25, 2018 6:33 am

Jeferson Alvarez Mesa OOP

User avatar
ScarHand420
Posts: 24
Joined: Thu Jul 26, 2018 6:24 am

Re: Rotten Studios - Defiende Tu Kaabluum

Post by ScarHand420 » Mon Oct 08, 2018 10:02 pm

¿ Qué han Hecho ?
Agregamos la función de vender las torres seleccionadas utilizando un par de botones que se despliegan solo cuando la torre puesta en escenario es seleccionada.

¿ Qué se va a hacer ?
Continuar con los sprites propios orientados al a temática maya.

¿ Qué dificultades presenta ?
De momento ninguna.

Evidencia

Image

Código:

Code: Select all

public void SellTower()
    {
        if (selectedTower != null)
        {
            Currency += selectedTower.Price / 2;

            selectedTower.GetComponentInParent<TileScript>().IsEmpty = true;

            Destroy(selectedTower.transform.parent.gameObject);

            DeselectedTower();
        }
    }
El código completo está disponible en el Github.
Carlos Andrés Morales Albarán
  • Programación y diseño orientado a objetos.
:twisted: "~CY@~" :twisted:
-NB3-

User avatar
ScarHand420
Posts: 24
Joined: Thu Jul 26, 2018 6:24 am

Re: Rotten Studios - Defiende Tu Kaabluum

Post by ScarHand420 » Thu Oct 11, 2018 9:22 pm

¿ Qué han Hecho ?
Se arreglaron un par de bugs en la función de ataque de la torre, lo que pasaba es que aveces cuando se iniciaba la oleada empezaba a disparar mas allá del rango, y era porque el ultimo enemigo que había cruzado el portal se quedaba con un "disparo pendiente". entonces lo que se hizo fue hacer que todos los enemigos que cruzaran el portal la torre los ignoraba a no se que volvieran a entrar al rango de esta.

¿ Qué se va a hacer ?
Nos hemos adelantado al cronograma entonces solo nos queda pendiente usar sprites propios y balancear el juego. De momento solo eso.

¿ Qué dificultades presenta ?
De momento ninguna.

Codigo del ataque de la torre. Código completo en el Github.

Code: Select all

private void Attack()
    {
        if (!canAttack)
        {
            attackTimer += Time.deltaTime;

            if (attackTimer >= attackCooldown)
            {
                canAttack = true;
                attackTimer = 0;
            }
        }

        if (target == null && monsters.Count > 0)
        {
            target = monsters.Dequeue();
        }

        if (target != null && target.IsActive)
        {
            if (canAttack)
            {
                Shoot();

                canAttack = false;
            }
        }

        else if (monsters.Count > 0)
        {
            target = monsters.Dequeue();
        }
        if (target != null && !target.Alive || target != null && !target.IsActive)
        {
            target = null;
        }
    }
Carlos Andrés Morales Albarán
  • Programación y diseño orientado a objetos.
:twisted: "~CY@~" :twisted:
-NB3-

Post Reply