FUNI-White shadows

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

Moderator: julianmartinez16

User avatar
mateopkp
Posts: 32
Joined: Tue Jul 18, 2017 4:08 pm

Re: FUNI-White shadows

Post by mateopkp » Tue Oct 03, 2017 7:12 pm

MARTES 3/10/2017
-¿Qué hemos hecho?: se logro corregir el bufg de las flechas ,se mejoro la estética del juego , con decoraciones, se le añadió la barra de vida a todos los personajes , se añadieron animaciones ,se corrigieron las bases de las torres, y se mejoro la flecha ,debido a que no se visualizaba casa, se agrego la ultima ruta de los personajes y se trabajo en el HUd Y en las barras de vida
-¿Qué haremos?: se tratara de que el Hud funcione correctamente y que las torres si le bajen vida a los personajes y se destruyan
-dificultades?
El programa unity dejo de funcionar correctamente y toco repararlo, y por mucho que se la trabajo a el hud y las barras de vida nos e logro programar, este problema se piensa corregir pidiendo accesoria a algunos de los monitores o algún profesor de programasion
los tiles nuevos de decoracion son :
Image Image
Image Image
Image
y así se ve el juego con los demás avances :
Image

User avatar
juanmatq
Posts: 31
Joined: Tue Jul 18, 2017 4:11 pm

Re: FUNI-White shadows

Post by juanmatq » Wed Oct 04, 2017 8:20 pm

Jueves 5/10/2017
-¿Qué hemos hecho?: Se logro que la barra de vida funcione, tanto de los personajes como la de el juego , se puso la condición de derrota ,se mejoraron algunos aspectos visuales de el hud y se creo la pantalla de derrota
-¿Qué haremos?: con el nuevo código aprendido se mejorara la detección de los enemigos, y se utilizara el boton de pausa y las monedas para comprar las torres
-dificultades?
ninguna falta de tiempo

Game over:
Image


https://www.slideshare.net/secret/1liznDQhoW8VGP

Gameplay:
Last edited by juanmatq on Thu Oct 05, 2017 4:06 pm, edited 3 times in total.

User avatar
mateopkp
Posts: 32
Joined: Tue Jul 18, 2017 4:08 pm

Re: FUNI-White shadows

Post by mateopkp » Thu Oct 05, 2017 3:00 pm


User avatar
mateopkp
Posts: 32
Joined: Tue Jul 18, 2017 4:08 pm

Re: FUNI-White shadows

Post by mateopkp » Mon Oct 09, 2017 11:24 pm

Martes 9/10/2017
-¿Qué hemos hecho?:se logro crear un nuevo script para cada tipo de unidad así pudiéndola personalizar y ahorrando memoria, gracias a esto se pudo hacer un balance correcto de las mecánicas de el juego , se introdujo una canción de derrota y otra de inicio, se mejoraron las animaciones de los personajes respecto al movimiento
-¿Qué haremos?: se tratara de que las monedas de el juego funcionen con una variable float a la cual se le sume un time.deltatime para su aumento se pondrán animaciones en el mapa y se harán varios testeos para que el funcionamiento de el nivel sea correcto, se habilitara la nueva torre y se mejorara el funcionamiento de escoger estas
-dificultades?
semana de parciales

Code: Select all

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

public enum tipoUnidad
{
   Mago,Arquero,Guerrero
}

public class Unidad2 : MonoBehaviour {
    public tipoUnidad tipodeunidad;
    public GameObject ruta;
    private int indice;
    private Vector3 posicion_inicial;
    private Vector3 posicion_siguiente;
    private float vel = 1;
    private float distancia_punto = 0.5f;
    private bool esta_viva = true;
    private bool lehacen_daño = false;
    private float escala;

    public bool Lehacen_daño
    {
        get
        {
            return lehacen_daño;
        }

        set
        {
            lehacen_daño = value;
        }
    }

    public bool Esta_viva
    {
        get
        {
            return esta_viva;
        }

        set
        {
            esta_viva = value;
        }
    }

    public float Escala
    {
        get
        {
            return escala;
        }

        set
        {
            escala = value;
        }
    }

    // Use this for initialization
    void Start () {
        posicion_inicial = this.transform.position;
        posicion_siguiente = ruta.transform.GetChild(0).position;
        switch (tipodeunidad)
        {
            case tipoUnidad.Arquero:
                vel = 0.8f;
                escala = 0.3f;
                break;
            case tipoUnidad.Guerrero:
                vel = 1;
                escala = 0.5f;
                break;
            case tipoUnidad.Mago:
                vel = 0.7f;
                escala = 0.2f;
                break;
        }

    }
	
	// Update is called once per frame
	void Update () {
        Vector3 dir = posicion_siguiente - this.transform.position;
        if (Esta_viva == true)

        {

            this.transform.position += dir.normalized * 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;

                }
            }
        }
        else
        {
            this.transform.position = posicion_inicial;
        }


    }
    public void OnTriggerEnter2D(Collider2D otro)
    {
        if (otro.gameObject.tag == "flecha" || otro.gameObject.tag == "rayo")
        {
          
            Destroy(otro.gameObject);
            Lehacen_daño = true;




        }

    }
}
nuevo seleccionador de torres
Image

User avatar
juanmatq
Posts: 31
Joined: Tue Jul 18, 2017 4:11 pm

Re: FUNI-White shadows

Post by juanmatq » Thu Oct 12, 2017 11:15 pm

Animación torre de rayos cargando (antes de disparar):
Image

User avatar
mateopkp
Posts: 32
Joined: Tue Jul 18, 2017 4:08 pm

Re: FUNI-White shadows

Post by mateopkp » Fri Oct 13, 2017 1:54 pm

código de las monedas del juego:

Code: Select all

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

public class Martillos : MonoBehaviour {
    public Image marti;
    public Text martillos;
    private float valormaximo;
    private float valoractual;

    // Use this for initialization
    void Start () {
        valormaximo = 5000f;
        valoractual = 0.0f;
		
	}
	
	// Update is called once per frame
	void Update () {
        martillos.text =  valoractual.ToString();

        if (valoractual >= valormaximo)
        {
            valoractual = valormaximo;
        }
        if (valoractual >= 0 && valoractual<=valormaximo)
        {
            valoractual += Time.deltaTime;
        }

    }
}

User avatar
mateopkp
Posts: 32
Joined: Tue Jul 18, 2017 4:08 pm

Re: FUNI-White shadows

Post by mateopkp » Tue Oct 17, 2017 11:55 am

Martes 17/10/2017
-¿Qué hemos hecho?:las monedas de el juego funcionan perfectamente , se realizaron los testeos y se concluyo el dinero inicial de la partida, aun falta balanceo de los personajes , se corrigió un bug que ocasionaba que las balas curaran los enemigos
-¿Qué haremos?: se añadirán animaciones al mapa, se pondrá una nueva interfaz de torres , se hará que el pause funcione y se habilitara la nueva torre , se añadirán lo créditos y se balanceara el juego
-dificultades
al inicio no se lograba que las monedas funcionaran bien y no nos habíamos percatado de el bug de los personajes
codigo para el costo de torrres

Code: Select all

public class PoneTesla : MonoBehaviour
{

    
    public GameObject tesla;
    public GameObject selector;
    private Martillos dinero;
    public GameObject losmartillos;
    private bool ponertorre = false;
    private float dinerooo;
    public Martillos Dinero
    {
        get
        {
            return dinero;
        }

        set
        {
            dinero = value;
        }
    }

    public float Dinerooo
    {
        get
        {
            return dinerooo;
        }

        set
        {
            dinerooo = value;
        }
    }

    void Start()
    {
        Dinero = losmartillos.GetComponent<Martillos>();

    }
    void Update()
    {
        Dinerooo = Mathf.Round(Dinero.Valoractual);
        Debug.Log("aaaaaaaaaaaaaaaaaaa" + Dinero.Valoractual + "bbbbbb" + ponertorre + "CCCCCCCCCCC" + Dinerooo);

        if (Dinerooo >= 60f)
        {
            ponertorre = true;
        }
        else
        {
            ponertorre = false;
        }
    }[


    void OnMouseDown()
    {

        if (ponertorre == true)
        {
            GameObject temp;
            Vector3 pos = this.transform.position;


            temp = Instantiate(tesla);
            temp.transform.position = pos;
            temp.layer = 5;
            Destroy(selector.gameObject);
            Dinero.Valoractual -= 60;
        }





    }
}
nuevo codigo monedas:

Code: Select all

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

public class Martillos : MonoBehaviour
{
    public Image marti;
    public Text martillos;
    private float valormaximo;
    private float valoractual=0.0f;

    public float Valoractual
    {
        get
        {
            return valoractual;
        }

        set
        {
            valoractual = value;
        }
    }



    // Use this for initialization
    void Start()
    {
        valormaximo = 5000f;
        Valoractual = 90f;

    }

    // Update is called once per frame
    void Update()
    {
        martillos.text = Mathf.Round( Valoractual).ToString();

        if (Valoractual >= valormaximo)
        {
            Valoractual = valormaximo;
        }
        if (Valoractual >= 0 && Valoractual <= valormaximo)
        {
            Valoractual += Time.deltaTime;
        }

    }
}

User avatar
mateopkp
Posts: 32
Joined: Tue Jul 18, 2017 4:08 pm

Re: FUNI-White shadows

Post by mateopkp » Thu Oct 19, 2017 11:25 pm

jueves 19/10/2017
-¿Qué hemos hecho?:se coloco la nueva interfaz de torres , y se logro que la pausa funcionara , ademas se habilito la nueva torre y se optimizo el código de poner las torres , se realizo la pantalla de pausa , una animacion del mapa, y la pantalla de carga
-¿Qué haremos?:se configurara el daño en área de la nueva torre , se harán las oleadas, se pondrán las animaciones pendientes y si hay tiempo se creara un boss de el lvl 1 para terminar el nivel , se investigara bien como evaluar la condición de victoria , al concluir este nivel se hará el nuevo
-dificultades: problemas con las partes de animaciones
codigo pausa:

Code: Select all

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

public class Pausa : MonoBehaviour
{
    public bool pausa;

    // Use this for initialization
    void Start()
    {
        pausa = false;
    }

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

    }
    void OnMouseDown()
    {
        pausa = !pausa;
        if(!pausa)
        {
            Time.timeScale = 1;
        
        }
        else
        {
            Time.timeScale = 0;
        }
    }
}
código nuevo de la interfaz de las torres

Code: Select all

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

public enum tipoTorre
{
    Flechas, Rayos, Fuego, Ninguna
}
public class PoneTorres : MonoBehaviour {

    public tipoTorre torreEligda;
    public GameObject tesla;
    public GameObject arqueros;
    public GameObject fuego;
    public GameObject selector;
    private Martillos dinero;
    public GameObject losmartillos;
    private bool ponertorre = false;
    private float dinerooo;

    public float Dinerooo
    {
        get
        {
            return dinerooo;
        }

        set
        {
            dinerooo = value;
        }
    }

    public Martillos Dinero
    {
        get
        {
            return dinero;
        }

        set
        {
            dinero = value;
        }
    }

    // Use this for initialization
    void Start () {
        {
            Dinero = losmartillos.GetComponent<Martillos>();
           
        }
    }
	
	// Update is called once per frame
	void Update () {
        Dinerooo = Mathf.Round(Dinero.Valoractual);
         switch(torreEligda)
        {
            case tipoTorre.Flechas:
                if (Dinerooo >= 30f)
                {
                    ponertorre = true;
                }
                else
                {
                    ponertorre = false;
                }
                break;
             case tipoTorre.Rayos:
                if (Dinerooo >= 60f)
                {
                    ponertorre = true;
                }
                else
                {
                    ponertorre = false;
                }
                break;
             case tipoTorre.Fuego:
                if(Dinerooo>=90)
                {
                    ponertorre = true;
                }
                else
                {
                    ponertorre = false;
                }
                break;

        }

    }
     void OnMouseDown()
    {
       
            switch (torreEligda)
        {
            case tipoTorre.Flechas:
                if (ponertorre == true)
                {
                    GameObject temp;
                    Vector3 pos = this.transform.position;


                    temp = Instantiate(arqueros);
                    temp.transform.position = pos;
                    temp.layer = 5;
                    Destroy(selector.gameObject);
                    Dinero.Valoractual -= 30;

                }
                break;
            case tipoTorre.Rayos:
                if (ponertorre == true)
                {
                    GameObject temp;
                    Vector3 pos = this.transform.position;


                    temp = Instantiate(tesla);
                    temp.transform.position = pos;
                    temp.layer = 5;
                    Destroy(selector.gameObject);
                    Dinero.Valoractual -= 60;

                }
                break;
            case tipoTorre.Fuego:
                if (ponertorre == true)
                {
                    GameObject temp;
                    Vector3 pos = this.transform.position;
                    temp = Instantiate(fuego);
                    temp.transform.position = pos;
                    temp.layer = 5;
                    Destroy(selector.gameObject);
                    Dinero.Valoractual -= 90;

                }
                break;
        }
    }
}
Last edited by mateopkp on Tue Oct 24, 2017 9:17 pm, edited 4 times in total.

User avatar
juanmatq
Posts: 31
Joined: Tue Jul 18, 2017 4:11 pm

Re: FUNI-White shadows

Post by juanmatq » Thu Oct 19, 2017 11:59 pm

Menú de pausa
Image

Menú de carga
Image

Animación lava
Image

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

Re: FUNI-White shadows

Post by xacarana » Sat Oct 21, 2017 9:21 am

Bien, definan prioridades y recuerden los bonus.

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

Post Reply