FrankenLabs-Tower defense de Horror

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

Moderator: julianmartinez16

User avatar
kriptonauta
Posts: 33
Joined: Tue Jan 22, 2019 6:36 am

Re: FrankenLabs-Tower defense de Horror

Post by kriptonauta » Mon Sep 16, 2019 10:36 pm

Sprint Semana #10
Desde el lunes 16 de Septiembre
Hasta el viernes 20 de Septiembre
¿Qué se hizo?
  • Diseño final del suelo de los 3 niveles (Javier)
    Image

    Image

    Image

    ¿Qué se va a hacer?
    • Reparar el sistema de disparo de las torres
    ¿Qué problemas hemos tenido?
    • Ninguno por el momento
Last edited by kriptonauta on Tue Sep 24, 2019 4:18 am, edited 1 time in total.
Javier Santiago Arango :idea:
– La existencia es azarosa. No tiene ningún patrón seguro que podamos imaginar después de haberlo observado fijamente por demasiado tiempo.
Programación orientada a objetos

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

Re: FrankenLabs-Tower defense de Horror

Post by xacarana » Tue Sep 17, 2019 6:24 am

Image

Muy bien que se pusieron al día, pero están publicando tarde. Recuerden que el seguimiento debe ser los martes y viernes máximo. Adicionalmente recuerden incluir avance en video o en un gif, para saber como va el proyecto armado.
Andrés Bedoya Tobón
Profesor
"I only smile in the dark, I only smile when it's complicated" Raybiez

User avatar
juan.mira1
Posts: 8
Joined: Tue Jul 16, 2019 6:25 am

Re: FrankenLabs-Tower defense de Horror

Post by juan.mira1 » Thu Sep 19, 2019 9:22 pm

Sprint Semana #10
Lunes 16 de Septiembre
Viernes 20 de Septiembre

¿Qué se hizo?
  • Avances en el HUD(Iván)
  • Finiquitado WaveSpawner de Enemigos (Juan José)
  • Preparación Presentación Pre Entrega (Javier)

Código WaveSpawner

Code: Select all

[System.Serializable]
public class WaveSpawner : MonoBehaviour
{
    [SerializeField]
    private Wave[] waves;
    private static int EnemiesAlive = 0;
    //public Transform enemyPrefab;
    public Transform spawnPoint;
    private float countdown = 5f;
    private int waveNumber = 1;
    [SerializeField]
    private float timeBetweenWaves = 5f;
    //[SerializeField]
    private int waveIndex = 0;

    public int WaveNumber { get => waveNumber; set => waveNumber = value; }

    void Update()
    {
        if (EnemiesAlive>0)
        {
            return;
        }
        if (countdown<=0f)
        {
            StartCoroutine(SpawnWave());
            countdown = timeBetweenWaves;
            return;
        }
        countdown -= Time.deltaTime;
    }
    IEnumerator SpawnWave()
    {
        Wave wave = waves[waveIndex];

        EnemiesAlive = wave.Count;

        for (int i = 0; i < wave.Count; i++)
        {
            SpawnEnemy(wave.EnemyPrefab);
            yield return new WaitForSeconds(1f / wave.Rate);
        }

        waveIndex++;
        /*for (int i = 0; i < waveNumber; i++)
        {
            SpawnEnemy();
        }
        waveNumber++;*/
    }

    void SpawnEnemy(GameObject EnemyPrefab)
    {
        Instantiate(EnemyPrefab, spawnPoint.position,spawnPoint.rotation);
        EnemiesAlive++;
    }
}
Código Wave

Code: Select all

[System.Serializable]
public class Wave
{
    [SerializeField]
    private GameObject enemyPrefab;
    [SerializeField]
    private int count;
    [SerializeField]
    private float rate;

    public GameObject EnemyPrefab { get => enemyPrefab; set => enemyPrefab = value; }
    public int Count { get => count; set => count = value; }
    public float Rate { get => rate; set => rate = value; }
}
Presentación Pre Entrega




¿Qué se va a hacer?

  • Comenzar código Colocación de Torres(Juan José)
  • Avances en el Funcionamiento del HUD(Iván)
  • Implementación del Disparo de Torre(Javier)

¿Qué problemas hemos tenido?

No se han presentado problemas.
Last edited by juan.mira1 on Fri Oct 11, 2019 6:58 am, edited 5 times in total.
Juan José Mira Álvarez
Programación y Diseño Orientado a Objetos
2019-2
"Life ... uh, finds a way".
Dr. Ian Malcolm

User avatar
kriptonauta
Posts: 33
Joined: Tue Jan 22, 2019 6:36 am

Re: FrankenLabs-Tower defense de Horror

Post by kriptonauta » Tue Sep 24, 2019 4:14 am

Sprint Semana #11
Desde el lunes 23 de Septiembre
Hasta el viernes 27 de Septiembre

¿Qué se hizo?
  • 1. Implementación de un temporizador para poder hacer intervalos de ronda entre partidas (Se tiene en consideración si hacerlo visible o no).

    Code: Select all

    public class tiempoderonda : MonoBehaviour
    {
        public string htht = "";
        public float Acabarnivel;
        public Text Contadortext;
        public int tiempototext;
    
        // Use this for initialization
        void Start()
        {
            Acabarnivel = 30f;
    
    
        }
    
        // Update is called once per frame
        void Update()
        {
         Acabarnivel -= Time.deltaTime;
            tiempototext = (int)Acabarnivel;
            Contadortext.text = tiempototext.ToString();
    
            if (Acabarnivel <= 0)
            {
                SceneManager.LoadScene(htht);
            }
        }
    
    2. Se añadió en el script de enemigo la posibilidad de destruirse

    Code: Select all

    public void OnCollisionEnter(Collision collision)
        {
    
            if (collision.gameObject.CompareTag("Puerta"))
            {
                Destroy(gameObject);
            }
        }
    
    3. Se creó un script que otorga dinero al contador de monedas cada vez que se destruye un enemigo.

    Code: Select all

    public class Masmonedas : MonoBehaviour
    {
        int puntaje;
        // Start is called before the first frame update
        void Awake()
        {
            puntaje = 20;
        }
        void OnDestroy()
        {
            gamescore2.score += puntaje;
        }
    
        // Update is called once per frame
        void Update()
        {
            
        }
    }
    4. Se reformuló el HUD y se implementaron distintas modificaciones.
¿Qué se va a hacer?
  • Reparar el sistema de disparo de las torres
¿Qué problemas hemos tenido?
  • Ninguno por el momento
Javier Santiago Arango :idea:
– La existencia es azarosa. No tiene ningún patrón seguro que podamos imaginar después de haberlo observado fijamente por demasiado tiempo.
Programación orientada a objetos

User avatar
juan.mira1
Posts: 8
Joined: Tue Jul 16, 2019 6:25 am

Re: FrankenLabs-Tower defense de Horror

Post by juan.mira1 » Tue Oct 01, 2019 6:21 am

Sprint #11
Desde Lunes 23 de Septiembre
Hasta Viernes 27 de Septiembre

¿Qué hemos hecho?
  • Avances en Programación Construcción Torres (Juan José)

Code: Select all

public class Node : MonoBehaviour
{
    private Renderer rend;
    private Color startColor;
    void Start()
    {
        rend = GetComponent<Renderer>();
        startColor = rend.material.color;
    }
    

    void OnMouseExit()
    {
        rend.material.color = startColor;
    }

}
  • Adaptación Script Enemigo a Script Vida y Collider Final (Iván)

Code: Select all

 public void OnCollisionEnter(Collision collision)
    {

        if (collision.gameObject.CompareTag("Enemigo"))
        {
            heath -= Daño;
        }
    }
}
¿Qué vamos a hacer?
  • Terminar Programación Construcción Torres (Juan José)
  • Programación Hud (Iván)

¿Qué dificultades hemos tenido?
  • Fecha Publicación Avance (Juan José)
Last edited by juan.mira1 on Thu Oct 03, 2019 11:35 pm, edited 4 times in total.
Juan José Mira Álvarez
Programación y Diseño Orientado a Objetos
2019-2
"Life ... uh, finds a way".
Dr. Ian Malcolm

User avatar
kriptonauta
Posts: 33
Joined: Tue Jan 22, 2019 6:36 am

Re: FrankenLabs-Tower defense de Horror

Post by kriptonauta » Tue Oct 01, 2019 6:27 am

Sprint Semana #12
Desde el lunes 30 de Septiembre
Hasta el viernes 4 de Octubre

¿Qué se hizo?
  • Se diseñó y materializo el modelo de la torre marciana. (Javier)
    Perdimos el recurso y de momento lo estos reconstruyendo
  • Se diseñó y materializo algunos Props para los escenarios. (Javier)
    Image
¿Qué se va a hacer?
  • Terminar Programación Construcción Torres (Juan José)
¿Qué problemas hemos tenido?
  • Ninguno por el momento
Last edited by kriptonauta on Fri Oct 11, 2019 3:58 am, edited 5 times in total.
Javier Santiago Arango :idea:
– La existencia es azarosa. No tiene ningún patrón seguro que podamos imaginar después de haberlo observado fijamente por demasiado tiempo.
Programación orientada a objetos

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

Re: FrankenLabs-Tower defense de Horror

Post by xacarana » Tue Oct 01, 2019 6:32 am

Image

Publicaciones sin avances no sirven porque no sabemos como va el proyecto, bien por la respuesta a las preguntas, pero faltan las evidencias y la planeación del siguiente sprint. Reviso la proxima clase que se pongan al día.
Andrés Bedoya Tobón
Profesor
"I only smile in the dark, I only smile when it's complicated" Raybiez

User avatar
Ivan19
Posts: 6
Joined: Fri Jul 19, 2019 6:07 am

Re: FrankenLabs-Tower defense de Horror

Post by Ivan19 » Tue Oct 08, 2019 6:31 am

Sprint semana 13
Desde Lunes 7 de Octubre
Hasta Viernes 10 de Octubre
¿Que se hizo?
  • Se cambio el sistema de de cronometro por uno mas complejo y se establecio la posibilidad de definir rondas por nivel

    Code: Select all

    using UnityEngine;
    using UnityEngine.UI;
    using UnityEngine.SceneManagement;
    
    public class gametimer : MonoBehaviour
    {
        
        public string scorestring = "Tiempo";
        int ronda;
        public string escena = "";
        float Acabarnivel;
        public Text textscore;
        public static gametimer gamecontroler;
    
        void Awake()
        {
            Acabarnivel = 30f;
            ronda = 0;
            gamecontroler = this;
        }
        // Start is called before the first frame update
        void Start()
        {
    
        }
    
        // Update is called once per frame
        void Update()
        {
            if (textscore != null)
            {
                textscore.text = scorestring + Acabarnivel.ToString();
            }
            while(ronda <= 5)
            {
                Acabarnivel -= Time.deltaTime;
    
                if (Acabarnivel == 0f)
                {
                    Acabarnivel = 30f;
                    ronda ++;
                }
            }
    '
            
            
  • Se cambio el hud de juego agregando el cronometro y moviendo lo botones a una posición mas comoda
    Image

    Image
  • Se reorganizaron y terminaron los diseños y materializo algunos Props para los escenarios. (Javier)

    Image
¿Que se va a hacer?
  • Colocar un sistema de spawn de torretas
¿Que problema tenemos ?
  • Ninguno por el momento
Last edited by Ivan19 on Fri Oct 11, 2019 7:01 am, edited 6 times in total.
Iván Felipe Osorio Ortega
programacion y diseño orientado a objetos
2019 02

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

Re: FrankenLabs-Tower defense de Horror

Post by xacarana » Tue Oct 08, 2019 6:40 am

Image
  • Strike porque no hubo publicación el jueves 3 de octubre 1/3
  • Ojo a la ortografía
  • No hay planeación del sprint, si no esta la planeación la proxima clase es un strike
  • Están concentrados en actividades como el cronometro que se debe dejar para el final, en este momento son importantes otros detalles
  • ¿Cómo va el repositorio?
Andrés Bedoya Tobón
Profesor
"I only smile in the dark, I only smile when it's complicated" Raybiez

User avatar
kriptonauta
Posts: 33
Joined: Tue Jan 22, 2019 6:36 am

Re: FrankenLabs-Tower defense de Horror

Post by kriptonauta » Fri Oct 11, 2019 3:10 am

Sprint Semana #12
Desde el lunes 30 de Septiembre
Hasta el viernes 4 de Octubre

¿Qué se hizo?
  • Se crearon la balas preliminares una bala básica que daña al enemigo, y una bala que ademas de dañar al enemigo reduce su velocidad a la mitad por un determinado tiempo. Aun no hemos establecido el daño que harán esta receptivas balas.
  • Imagen de los modelos que tendrán las balas, están sujetas a cambios en el futuro.

    Image
  • Script de la bala básica

    Code: Select all

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public class balabasica : MonoBehaviour
    {
        public int dano;
        void Awake()
        {
            dano = 0;  
        }
    
        void OnTriggerEnter(Collider other)
        {
            if (other.CompareTag("Enemigo"))
            {
                Afectar(other);
                
            }
        }
        void Afectar(Collider enemi)
        {
            Enemigo stats = enemi.GetComponent<Enemigo>();
            stats.Vida -= dano;
    
            Destroy(gameObject);
        }
    }
    
  • Script de la bala que reduce la velocidad. Fue necesario el uso de corrotinas para esta clase.

    Code: Select all

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public class paralisador : MonoBehaviour
    {
        public int dano;
        public int dismunucion;
        public float duracion;
        void Awake()
        {
            dano = 0;
            duracion = 0f;
           
        }
    
        void OnTriggerEnter(Collider other)
        {
            if (other.CompareTag("Enemigo"))
            {
                StartCoroutine( Afectar(other) );
                
            }
        }
        IEnumerator Afectar(Collider enemi)
        {
            Enemigo stats = enemi.GetComponent<Enemigo>();
            stats.Vida -= dano;
            stats.Velocidad_de_mov /= 2;
    
            GetComponent<MeshRenderer>().enabled =false;
            GetComponent<Collider>().enabled= false;
    
            yield return new WaitForSeconds(duracion);
    
            stats.Velocidad_de_mov *= 2;
    
            Destroy(gameObject);
        }
    }
    
  • Video de donde se sacaron estos Scripts

¿Qué se va a hacer?
  • Terminar Programación Construcción Torres (Ivan)
  • Elaboración de los modelos de los personajes y enemigos (Javier)
  • Ubicar los assets de juego en cada nivel (Javier)
  • Optimizar el movimiento de los enemigos en todos los niveles (Juan josé)
¿Qué problemas hemos tenido?
  • A la hora de colocar la torres con el código que se halla abajo, salen en la orientación errónea.

Code: Select all

public class Node : MonoBehaviour
{
    public GameObject torre;

    void OnMouseDown()
    {
        GameObject temp;
        Vector3 pos = this.transform.position;
        pos.y = pos.y + .4f;
        temp = (GameObject)Instantiate(torre, pos, Quaternion.identity);
        temp.transform.position = pos;
        temp.layer = 7;
        temp.GetComponent<Torre>().Esta_activa1 = true;
        Destroy(this.gameObject);
    }
} 

//Construcción Torres 
Javier Santiago Arango :idea:
– La existencia es azarosa. No tiene ningún patrón seguro que podamos imaginar después de haberlo observado fijamente por demasiado tiempo.
Programación orientada a objetos

Post Reply