Modelo básico de una Torre y de una Unidad

En esta sección se resolverán dudas relacionadas con programación de Unity, pero también se puede preguntar temas relacionados con la interfaz, con el uso de componentes entre otras cosas.

Moderator: julianmartinez16

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

Modelo básico de una Torre y de una Unidad

Post by xacarana » Wed Aug 24, 2016 9:44 am

Modelo de la Torre

Code: Select all

using UnityEngine;
using System.Collections;

public class Torre : MonoBehaviour {

    private string nombre;
    private float distancia_umbral;
    private int costo;
    private bool puede_disparar_enemigo;
    private Unidad enemigo_actual;//Referencia para saber a quien voy a disparar
    private int[] niveles;
    private int tiempo_ataque;

    public void Disparar()
    {
        if(Puede_disparar)
        {
            //Disparo
            if(TengoUnEnemigoCerca())
            {
                if(Enemigo_actual.Esta_vivo)
                {
                    Enemigo_actual.Impactar(CalcularTipoDisparo());
                }
            }
        }
        else
        {
            //Espero
        }
    }

    public int CalcularTipoDisparo()
    {
        return 0;
    }

    public bool TengoUnEnemigoCerca()
    {
        //Revisa por proximidad, quien esta cerca, retorna falso o verdadero si encuentra a una unidad cerca
        return true;
    }

    public string Nombre
    {
        get
        {
            return nombre;
        }

        set
        {
            nombre = value;
        }
    }

    public float Distancia_umbral
    {
        get
        {
            return distancia_umbral;
        }

        set
        {
            distancia_umbral = value;
        }
    }

    public int Costo
    {
        get
        {
            return costo;
        }

        set
        {
            costo = value;
        }
    }

    public bool Puede_disparar
    {
        get
        {
            return puede_disparar_enemigo;
        }

        set
        {
            puede_disparar_enemigo = value;
        }
    }

    public Unidad Enemigo_actual
    {
        get
        {
            return Enemigo_actual;
        }

        set
        {
            Enemigo_actual = value;
        }
    }

    public int[] Niveles
    {
        get
        {
            return niveles;
        }

        set
        {
            niveles = value;
        }
    }

    public int Tiempo_ataque
    {
        get
        {
            return tiempo_ataque;
        }

        set
        {
            tiempo_ataque = value;
        }
    }

    public Unidad Enemigo_actual1
    {
        get
        {
            return enemigo_actual;
        }

        set
        {
            enemigo_actual = value;
        }
    }
}

Modelo de la unidad

Code: Select all

using UnityEngine;
using System.Collections;

public class Unidad : MonoBehaviour {

    private bool esta_vivo;

    public void Impactar(int tipo_disparo_torre)
    {

    }

    public bool Esta_vivo
    {
        get
        {
            return esta_vivo;
        }

        set
        {
            esta_vivo = value;
        }
    }
}
Ejemplo de uso o creación de instancias de torre

Code: Select all

using UnityEngine;
using System.Collections;

public class Inicio : MonoBehaviour {

    Torre torre1;
    Torre torre2;
    Torre torre3;
    Torre torre4;
    Torre torre5;
        
    // Use this for initialization
    void Start () {
        torre1 = new Torre();
        torre1.Nombre = "Super Torre Terror";
        torre1.Costo = 100;
        torre1.Distancia_umbral = 100;
        torre1.Tiempo_ataque = 2000;

        torre2 = new Torre();
        torre2.Nombre = "Mega Torre Endemoniada";
        torre2.Costo = 150;
        torre2.Distancia_umbral = 200;
        torre2.Tiempo_ataque = 500;

        torre3 = new Torre();
        torre4 = new Torre();
        torre5 = new Torre();
    }
	
	// Update is called once per frame
	void Update () {
	
	}
}
Andrés Bedoya Tobón
Profesor
"I only smile in the dark, I only smile when it's complicated" Raybiez

Post Reply