예제 #1
0
    void Start()
    {
        lastShotTime = -shootCooldown;

        myRay = Instantiate(ray);
        myRay.transform.position = new Vector3(transform.position.x + 0.3f, transform.position.y + 0.3f, -1);
        myRay.GetComponent <SpriteRenderer>().color = new Vector4(1, 0, 0, 0);
        estado = estadoTortuga.espera;
    }
예제 #2
0
 private void OnTriggerStay2D(Collider2D collider)
 {
     if (Time.time >= (lastShotTime + shootCooldown))
     {
         enemy = collider.transform;                                                                                     // Se guarda el objetivo
         myRay.GetComponent <SpriteRenderer>().color = new Vector4(1, 0, 0, 0.2f);                                       // Semi-transparente para el apuntado
         myRay.transform.localScale = new Vector3(myRay.transform.localScale.x, 0.5f * myRay.transform.localScale.y, 1); // Más estrecho en el apuntado
         followEnemy = true;                                                                                             // Tiene que perseguir al objetivo
         AudioManager.GetInstance().PlaySFX("CargaDisparoTortuga");                                                      // Reproducción del sonido de disparo de tortuga
         estado       = estadoTortuga.apunta;
         lastShotTime = Time.time;
     }
 }
예제 #3
0
    private void Update()
    {
        // Si hay enemigo, apunta en su dirección
        if (followEnemy && enemy != null)
        {
            myRay.transform.rotation = Quaternion.Euler(0, 0, Mathf.Atan2(enemy.position.y - transform.position.y, enemy.position.x - transform.position.x) * Mathf.Rad2Deg);
        }

        if (estado == estadoTortuga.dispara && Time.time >= lastShotTime + shootCooldown / 2)
        {
            // Se acaba el disparo
            myRay.GetComponent <SpriteRenderer>().color = new Vector4(1, 0, 0, 0);
            estado = estadoTortuga.espera;
        }
        else if (estado == estadoTortuga.apunta && Time.time >= lastShotTime + shootCooldown / 4)
        {
            // Deja de apuntar y comienza el disparo en sí
            myRay.GetComponent <SpriteRenderer>().color = new Vector4(1, 0, 0, 1);                                       // Color opaco
            myRay.transform.localScale = new Vector3(myRay.transform.localScale.x, 2 * myRay.transform.localScale.y, 1); // Mayor grosor
            followEnemy = false;                                                                                         // Tiene que dejar de perseguir
            estado      = estadoTortuga.dispara;
        }
    }