lunes, 23 de diciembre de 2013

03 IA Basica para los enemigos

Vamos a crear una Inteligencia Artificial muy basica para los enemigos con javascript.
Dejare el enlace de descarga al final del post
Primero creamos las variables:
    var player : GameObject; Declaramos al jugador
    var speed : float=6f; Velocidad
    var range : float=10f; Rango para que el enemigo te persiga
    var hitRange : float=5f; Rango para que te ataque
    var enemyDamage : float=10f; El daño que te aplica
    var rotationSpeed : float=5f; La velocidad con la que rota
    var damageTimer : float=0f; El tiempo que tarda en atacar
 
Primero en la funcion Start buscamos al jugador
    function Start(){
        player = GameObject.FindGameObjectWithTag("Player");
    }
 
Si el enemigo ya esta a cierta distancia del personaje que se mueva en esa direccion y ademas que rote
    function Update()
    {
        // Move the Player
        var distance = Vector3.Distance(transform.position, player.transform.position);
        if(distance<=range)
        {
        // Translate
            var delta = player.transform.position - transform.position;
            delta.Normalize();
            delta.y = 0;
            var moveSpeed = speed * Time.deltaTime;
            transform.position = transform.position + (delta * moveSpeed);
     
        // Rotate
            transform.rotation = Quaternion.Slerp (transform.rotation, Quaternion.LookRotation(delta), rotationSpeed * Time.deltaTime);
        transform.eulerAngles = Vector3(0, transform.eulerAngles.y, 0); 
Y ahora que aplique el daño conforme a el tiempo entre ataque y ataque declarado el la variable damageTimer
   
            damageTimer+=Time.deltaTime;
            if (distance < hitRange && damageTimer>=1.5)
            {
                damageTimer=0f;
                player.SendMessageUpwards
                ("ApplyDamage", enemyDamage, SendMessageOptions.DontRequireReceiver);
            }
        }
Aqui declaro que con tan solo un golpe se destruya el enemigo ya que esta IA la utilizare para alimañas(Enemigos de un punto de vida) 
        if(distance<=4){
        if(Input.GetKeyDown(KeyCode.Mouse0))
        {
     Debug.Log("Hello");
     Destroy (gameObject);
     
 }
 }
    } 
Link: https://www.mediafire.com/?ra71qp1d74pp972

1 comentario: