MAP Studios - Nindefense

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

Moderator: julianmartinez16

User avatar
sileugim
Posts: 65
Joined: Tue Jul 18, 2017 4:31 pm

Re: MAP Studios - Nindefense

Post by sileugim » Thu Aug 31, 2017 7:23 pm

programaciones hechas

-Unidad.

Code: Select all

public class Unidad : MonoBehaviour {
    public GameObject ruta;
    private int indice;
    private Vector3 posicion_inicial;
    private Vector3 posicion_siguiente;
    private float vel = 3;
    private float distancia_punto = 0.5f;
    private bool esta_viva;



    void OnTriggerEnter2D(Collider2D otro)
    {
        if(otro.gameObject.tag == "bala")
        {
            Destroy(otro.gameObject);
        }
    }
    

    public bool Esta_viva
    {
        get
        {
            return esta_viva;
        }

        set
        {
            esta_viva = value;
        }
    }

    // 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()
    {
        Vector3 dir = posicion_siguiente - this.transform.position;
        this.transform.position += dir * vel * Time.deltaTime;

        

        if(esta_viva)
        {

        }

        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;
            }
        }
    }
}
-torre.

Code: Select all

public class Torre : MonoBehaviour {

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

    

    // Use this for initialization
    void Start () {
		
	}
	
	// Update is called once per frame
	void Update () {
        Enemigo = BuscarEnemigoCercano();
        if(enemigo != null)
        {
            Disparar();
            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);
    }

    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;
    }

    public GameObject Enemigo
    {
        get
        {
            return enemigo;
        }

        set
        {
            enemigo = value;
        }
    }
}
-Poner torres.

Code: Select all

public class PonerTorre : MonoBehaviour {

    public GameObject torre;



    void OnMouseDown()
    {
        GameObject temp;
        Vector3 pos = this.transform.position;
        pos.y = pos.y + .7f;
        pos.x = pos.x + -.3f;
        temp = Instantiate(torre);
        temp.transform.position = pos;
        temp.layer = 5;
        Destroy(this.gameObject);

    }

}
-pooling unidades.

Code: Select all

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(-25, 0);
        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 () {
		
	}
}
-bala

Code: Select all

public class Bala : MonoBehaviour {
    private GameObject objetivo;
    private float velocidad = 2;


	// Use this for initialization
	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;
    }
}
-lógica barra.

Code: Select all

public class LogicaBarra : MonoBehaviour {

    public GameObject leo;
    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 = leo.transform.position  - new Vector3(.3f - sr.bounds.size.x/2,-.4f);
            barra_roja.transform.position = leo.transform.position - new Vector3(.05f, -.4f);
        }

	}
}

User avatar
sileugim
Posts: 65
Joined: Tue Jul 18, 2017 4:31 pm

Re: MAP Studios - Nindefense

Post by sileugim » Thu Aug 31, 2017 7:29 pm

1.¿Que hemos hecho?
-vídeos 5, 6 y 7.
-se hicieron arreglos en el foro
-el enemigo se duplica.
-las torres atacan.
-se inicio la barra de vida.

2.¿Que vamos a hacer?
-esperar vídeo 8.
-hacer enemigo.
-referente de audios
-si queda tiempo, hacer arreglos de diseño y programación.

3.¿Que dificultades tenemos?
la torre no reconoce al enemigo origina, la barra aún no tiene buena sincronizan ni está bien posicionada, problemas de grupo.

User avatar
sileugim
Posts: 65
Joined: Tue Jul 18, 2017 4:31 pm

Re: MAP Studios - Nindefense

Post by sileugim » Tue Sep 05, 2017 2:08 pm

se crearon los enemigos.
Image


Enemigo 1
Este será un enemigo rápido, pero de ataques débiles.


Enemigo 2.
Este será un enemigo mas lente pero de ataques un poco mas fuertes.

User avatar
sileugim
Posts: 65
Joined: Tue Jul 18, 2017 4:31 pm

Re: MAP Studios - Nindefense

Post by sileugim » Tue Sep 05, 2017 2:12 pm

-se logro que ambos enemigos se duplicaran.
-que la torre reconociera a ambos enemigos.
-la barra de vida ya este bien ubicada y se escale como debe.

Image

User avatar
sileugim
Posts: 65
Joined: Tue Jul 18, 2017 4:31 pm

Re: MAP Studios - Nindefense

Post by sileugim » Tue Sep 05, 2017 2:16 pm

1.¿Que hemos hecho?
-se crearon los enemigo.
-se logro que ambos enemigos se duplicaran.
-que la torre reconociera a ambos enemigos.
-la barra de vida ya este bien ubicada y se escale como debe.

2.¿Que vamos a hacer?
-esperar vídeo 8.
-referentes de audio.

3.¿Que dificultades tenemos?
no se han subido mas vídeos a youtube.

User avatar
sileugim
Posts: 65
Joined: Tue Jul 18, 2017 4:31 pm

Re: MAP Studios - Nindefense

Post by sileugim » Fri Sep 08, 2017 3:49 am

este será el isotipo.
Image

User avatar
sileugim
Posts: 65
Joined: Tue Jul 18, 2017 4:31 pm

Re: MAP Studios - Nindefense

Post by sileugim » Fri Sep 08, 2017 3:50 am

se digitalizaron los iconos para las torres.
Image

User avatar
sileugim
Posts: 65
Joined: Tue Jul 18, 2017 4:31 pm

Re: MAP Studios - Nindefense

Post by sileugim » Fri Sep 08, 2017 4:09 am

Ya al presionar los tajet aparecen los iconos para seleccionar torre, pero estos no desaparecen al aparecer la torre.
Image
Image

User avatar
sileugim
Posts: 65
Joined: Tue Jul 18, 2017 4:31 pm

Re: MAP Studios - Nindefense

Post by sileugim » Fri Sep 08, 2017 4:12 am

1.¿Que hemos hecho?
-digitalizar iconos de torre.
-que los iconos aparezcan al presionar el traget.
-al presionar el icono sale la torre.

2.¿Que vamos a hacer?
-solucionar problema de que no desaparezcan los iconos.
-poner a disparar, las otras 2 torres.

3.¿Que dificultades tenemos?
que no desaparezcan los iconos al aparecer una torre.

User avatar
sileugim
Posts: 65
Joined: Tue Jul 18, 2017 4:31 pm

Re: MAP Studios - Nindefense

Post by sileugim » Wed Sep 13, 2017 12:23 am

se creo el tajet para dejar de utilizar el que se puso por defecto.
Image

esta semilla se es de crecimiento instantáneo las cual funciona con chacra (energía), y concierta energía que se recolecte se podrán escoger las diferentes torres.

Post Reply