True Bear Studios

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

Moderator: julianmartinez16

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

Re: True Bear Studios

Post by xacarana » Fri Mar 24, 2017 10:16 am

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

User avatar
David Ballesteros V
Posts: 51
Joined: Fri Jul 22, 2016 11:04 am

ICONO COINS - BASE

Post by David Ballesteros V » Sat Mar 25, 2017 11:45 pm

-COIN:
Image

-BASE:
Image
David Ballesteros Villa
Fundamentos De Programación - P.O.O

-Contacto:
Correo: Personal: dsktod@gmail.com Institucional: david.ballesteros@upb.edu.co

User avatar
David Ballesteros V
Posts: 51
Joined: Fri Jul 22, 2016 11:04 am

ANIMACION TORRES

Post by David Ballesteros V » Wed Mar 29, 2017 6:28 pm

-BOMBAS: -BOMBA:
ImageImageImage
David Ballesteros Villa
Fundamentos De Programación - P.O.O

-Contacto:
Correo: Personal: dsktod@gmail.com Institucional: david.ballesteros@upb.edu.co

User avatar
David Ballesteros V
Posts: 51
Joined: Fri Jul 22, 2016 11:04 am

HUD - LOBO

Post by David Ballesteros V » Fri Mar 31, 2017 12:26 am

-VIDA BASE:
Image

-ENEMIGO LOBO:
Image
David Ballesteros Villa
Fundamentos De Programación - P.O.O

-Contacto:
Correo: Personal: dsktod@gmail.com Institucional: david.ballesteros@upb.edu.co

User avatar
miguel199804
Posts: 73
Joined: Sun Jan 31, 2016 5:05 pm

Pre-Entrega

Post by miguel199804 » Fri Mar 31, 2017 5:32 am



Waves

Code: Select all

using UnityEngine;
using System.Collections;

public class Waves : MonoBehaviour {
    public Transform enemyprefab;
    public Transform enemyprefab2;
    public Transform spawnpoint; 
    public float tiemporespawn=5f;
    private float countdown=0f;
    private int waves=0;
    private int contador_oleadas = 0;
    
   
  
    
    void SpawnEnemy1()
    {
        
        Instantiate(enemyprefab, spawnpoint.position, spawnpoint.rotation);
    }
    void SpawnEnemy2()
    {
        Instantiate(enemyprefab2, spawnpoint.position, spawnpoint.rotation);
    }
   IEnumerator spawnWaves()
    {
        contador_oleadas++;

        waves++;
            for (int i = 0; i <waves; i++)
            {
            
            if (i >= 1)
                {
                    SpawnEnemy1();
                    yield return new WaitForSeconds(0.5f);
                    if (i >= 3)
                    {
                        SpawnEnemy2();
                        yield return new WaitForSeconds(2f);

                    }
                }
                
            }
        
        
    }
	
	void Update () {
       
            if (countdown <= 0f)
            {
           if(contador_oleadas<=7)
            {
                StartCoroutine(spawnWaves());
                countdown = tiemporespawn;

            }
            else
            {
                StopCoroutine(spawnWaves());
            }
               
               
           

        }
            countdown -= Time.deltaTime;
            countdown = Mathf.Clamp(countdown, 0f, Mathf.Infinity);
       
        

        }
       
   

}
Unidad 1

Code: Select all

using UnityEngine;
using System.Collections;

public class Unidad : MonoBehaviour {


   private GameObject ruta;
    private int indice;
    private Vector3 pos_siguiente;
    public float vel;
    private float dis_punto = 0.5f;
    
	
	void Start () {
        ruta = GameObject.Find("Ruta1");
        pos_siguiente = ruta.transform.GetChild(0).position;
	}

  

    void Update () {
        Vector3 dir = pos_siguiente - this.transform.position;
        this.transform.position += dir * vel * Time.deltaTime;
         if(dir.magnitude<=dis_punto)
        {
            if(indice+1<ruta.transform.childCount)
            {
                indice++;
                pos_siguiente = ruta.transform.GetChild(indice).position;
                Debug.Log("xs= " + pos_siguiente.x + ", ys= " + pos_siguiente.y);
            }
        }
	}
 


}
Unidad 2

Code: Select all

using UnityEngine;
using System.Collections;

public class Unidad2 : MonoBehaviour {


   private GameObject ruta;
    private int indice;
    private Vector3 pos_siguiente;
    public float vel;
    private float dis_punto = 0.5f;


    void Start()
    {
        ruta = GameObject.Find("Ruta 2");
        pos_siguiente = ruta.transform.GetChild(0).position;
    }



    void Update()
    {
        Vector3 dir = pos_siguiente - this.transform.position;
        this.transform.position += dir * vel * Time.deltaTime;
        if (dir.magnitude <= dis_punto)
        {
            if (indice + 1 < ruta.transform.childCount)
            {
                indice++;
                pos_siguiente = ruta.transform.GetChild(indice).position;
                Debug.Log("xs= " + pos_siguiente.x + ", ys= " + pos_siguiente.y);
            }
        }
    }

}
Logica punto de torre

Code: Select all

using UnityEngine;
using System.Collections;

public class LogicaPuntoTorre : MonoBehaviour {
    public GameObject bomba;
    public GameObject manguera;
    public GameObject defensa;
    public GameObject water_shooter;

    void OnMouseDown()
    {
        if(Input.GetKey(KeyCode.LeftAlt))
        {
            if (Input.GetKey(KeyCode.A))
            {
                GameObject temp;
                Vector3 pos = this.transform.position;
                pos.y = pos.y + 0.5f;
                pos.x = pos.x + 0.1f;
                temp = Instantiate(bomba);
                temp.transform.position = pos;
                temp.layer = 5;
                Destroy(this.gameObject);

            }
            if (Input.GetKey(KeyCode.S))
            {
                GameObject temp;
                Vector3 pos = this.transform.position;
                pos.y = pos.y + 0.07f;
                temp = Instantiate(manguera);
                temp.transform.position = pos;
                temp.layer = 5;
                Destroy(this.gameObject);
            }
            if (Input.GetKey(KeyCode.D))
            {
                GameObject temp;
                Vector3 pos = this.transform.position;
                pos.y = pos.y + 0.1f;
                temp = Instantiate(defensa);
                temp.transform.position = pos;
                temp.layer = 5;
                Destroy(this.gameObject);
            }
            if (Input.GetKey(KeyCode.F))
            {
                GameObject temp;
                Vector3 pos = this.transform.position;
                pos.y = pos.y + 0.1f;
                temp = Instantiate(water_shooter);
                temp.transform.position = pos;
                temp.layer = 5;
                Destroy(this.gameObject);
            }

        }

    }
   
}
Torre bomba

Code: Select all

using UnityEngine;
using System.Collections;

public class Torres : MonoBehaviour {
    private Animator anim;
  
    void Start()
    {
        anim = GetComponent<Animator>();
        anim.SetInteger("Bomba_estado1",1);
       
    }
}
Bala

Code: Select all

using UnityEngine;
using System.Collections;

public class Bala : MonoBehaviour
{
    public GameObject disparo;
    public float disparoLife;
    public float speed;
    public static float seg;
    private Animator anim;
    

    // Use this for initialization
    void Start()
    {
         
    Bala.seg = 25;
        anim = GetComponent<Animator>();
        
    }
    void OnTriggerEnter2D(Collider2D collider)
    {
        if (collider.transform.tag == "Enemigo")
        {
            Debug.Log("Explota");
            anim.Play("Bala_explota");
            Destroy(this.gameObject);
        }
    }

    // Update is called once per frame
    void Update()
    {
        seg += 1 + Time.deltaTime;
        if (Bala.seg > 25f)
        {
            Bala.seg = 0;
            GameObject newdisparo = Instantiate(disparo, transform.position, transform.rotation) as GameObject;
            newdisparo.GetComponent<Rigidbody2D>().velocity = transform.right * speed;
           
            Destroy(newdisparo.gameObject, disparoLife);

        }
    }
   
}

HUD

Code: Select all

using UnityEngine;
using System.Collections;

public class HUD : MonoBehaviour {
    public Base  Punto_base;
    public GameObject barra_vida;
    private Animator anim;
    public const string ESTADO_VIDAS = "Vidas";


	// Use this for initialization
	void Start () {
        anim = barra_vida.GetComponent<Animator>();
    }
	
	// Update is called once per frame
	void Update () {
        anim.SetInteger(ESTADO_VIDAS,Punto_base.Vidas);
    }
}   
Puntaje

Code: Select all

using UnityEngine;
using System.Collections;

public class Puntaje : MonoBehaviour {
   
    public GameObject centenas, decenas, unidades;
    private Animator ce, de, un;
    private string[] estado = { "Estado_0", "Estado_1", "Estado_2", "Estado_3", "Estado_4", "Estado_5", "Estado_6", "Estado_7", "Estado_8", "Estado_9" };
    private float tiempoLimite = 30f;
    private float tiempo = 0f;
    private int dinero = 0;

    public int Dinero
    {
        get
        {
            return dinero;
        }

        set
        {
            dinero = value;
        }
    }

    // Use this for initialization
    void Start()
    {
        ce = centenas.GetComponent<Animator>();
        de = decenas.GetComponent<Animator>();
        un = unidades.GetComponent<Animator>();



    }

    // Update is called once per frame
    void Update()
    {
        tiempo++;
        if(tiempo>tiempoLimite)
        {
            dinero++;
            ActualizadorContador(dinero);
            tiempo = 0;
        }
       
    }
    public void ActualizadorContador(int numero)
    {
        int unidades = numero % 10;
        int decenas = numero % 100 - unidades;
        int centenas = numero % 1000 - decenas;
        Debug.Log("numero " + numero + " centenas " + centenas / 100 + " decenas " + decenas / 10 + " unidades " + unidades);

        decenas = decenas / 10;
        centenas = centenas / 100;

        if (numero > 9)
        {
            de.Play(estado[decenas]);
        }
        else
        {
            de.Play(estado[0]);
        }

        if (numero > 99)
        {
            ce.Play(estado[centenas]);
        }
        else
        {
            ce.Play(estado[0]);
        }
        un.Play(estado[unidades]);

    }
}
Base

Code: Select all

using UnityEngine;
using System.Collections;

public class Base : MonoBehaviour {
    private const string ENEMIGO = "Enemigo"; 
    private int vidas = 10;
   
    public int Vidas
    {
        get
        {
            return vidas;
        }

        set
        {
            vidas = value;
        }
    }


    void OnTriggerEnter2D(Collider2D otro)
    {
        if(otro.gameObject.tag.Equals(ENEMIGO))
        {
            Debug.Log("Una vida fuera");
            --vidas;
            Destroy(otro.gameObject);        
        }
    }
    // Use this for initialization
    void Start () {
       
	}
	
	// Update is called once per frame
	void Update () {
	
	}

}
Miguel Angel Vargas :D
Programación orientada a objetos
10-12
Miércoles y Viernes

Contactos:
Correo personal: miguelangel9633@hotmail.com
Correo institucional: miguel.vargarj@upb.edu.co

User avatar
David Ballesteros V
Posts: 51
Joined: Fri Jul 22, 2016 11:04 am

PRESENTACION PRE-ENTREGA

Post by David Ballesteros V » Fri Mar 31, 2017 9:16 am

David Ballesteros Villa
Fundamentos De Programación - P.O.O

-Contacto:
Correo: Personal: dsktod@gmail.com Institucional: david.ballesteros@upb.edu.co

User avatar
David Ballesteros V
Posts: 51
Joined: Fri Jul 22, 2016 11:04 am

AVANCES GRAFICOS

Post by David Ballesteros V » Fri Apr 21, 2017 2:27 am

-BARRA DE SELECCIÓN DE TORRE:

Image

-ENEMIGO / VENADO (ESTÁTICO):
Image

-TILES:

Image Image Image
David Ballesteros Villa
Fundamentos De Programación - P.O.O

-Contacto:
Correo: Personal: dsktod@gmail.com Institucional: david.ballesteros@upb.edu.co

User avatar
David Ballesteros V
Posts: 51
Joined: Fri Jul 22, 2016 11:04 am

WEEKLY MEETING

Post by David Ballesteros V » Fri Apr 21, 2017 10:16 am

-¿Qué hemos hecho?
Creamos otro nivel mejor estéticamente con nuevos tiles, en programación ya arreglamos lo que son las colisiones.

-¿Qué vamos a hacer?
Trabajaremos en mejorar la programación de todo el juego, principalmente las waves y las muertes e implementaremos el nuevo nivel en unity.

-¿Qué dificultades hemos tenido?
El equipo de Miguel se dañó, así que no avanzamos mucha la programación.
David Ballesteros Villa
Fundamentos De Programación - P.O.O

-Contacto:
Correo: Personal: dsktod@gmail.com Institucional: david.ballesteros@upb.edu.co

User avatar
miguel199804
Posts: 73
Joined: Sun Jan 31, 2016 5:05 pm

WEEKLY MEETING SEMANA XV

Post by miguel199804 » Wed Apr 26, 2017 12:56 am

-¿Qué hemos hecho?
Se monto el nivel modificado a unity, se corrigieron ya por completo los errores de las colisiones, se implemento la programación de la muerte y se puso un nuevo menú.

-¿Qué vamos a hacer?
Se subirá un vídeo en la tarde del día de hoy de lo que se tiene y se programara la muerte del enemigo, el chorro de la manguera y una nueva forma de oleadas.

-¿Qué dificultades hemos tenido?
Ninguna.
Miguel Angel Vargas :D
Programación orientada a objetos
10-12
Miércoles y Viernes

Contactos:
Correo personal: miguelangel9633@hotmail.com
Correo institucional: miguel.vargarj@upb.edu.co

User avatar
miguel199804
Posts: 73
Joined: Sun Jan 31, 2016 5:05 pm

Re: True Bear Studios

Post by miguel199804 » Wed Apr 26, 2017 11:38 pm

Image
Image
Image
Miguel Angel Vargas :D
Programación orientada a objetos
10-12
Miércoles y Viernes

Contactos:
Correo personal: miguelangel9633@hotmail.com
Correo institucional: miguel.vargarj@upb.edu.co

Post Reply