/// <summary>
    /// Cuando el jugador colisione con el objeto PowerUp, le aplica el power up de fantasma durante duracionFantasma segundos
    /// </summary>
    /// <param name="collision"></param>
    private void OnTriggerEnter2D(Collider2D collision)
    {
        EstadoFantasma estadoFantasma = collision.GetComponent <EstadoFantasma>();

        if (estadoFantasma != null)
        {
            GameManager.instance.EjecutarSonido("PowerUp", 1);
            estadoFantasma.ActivaEstadoFantasma(duracionFantasma);
            Destroy(this.gameObject);
        }
    }
/// <summary>
    /// Este metodo se llama si el enemigo goomba colisiona por trigger con algun otro objeto
    /// </summary>
    /// /// <param name="other"></param> El que ha colisionado con el enemigo
    void OnTriggerEnter2D(Collider2D other)
    {
        // Se usa en el if para ver si el jugador tiene el estado fantasma o no
        EstadoFantasma est = other.GetComponent <EstadoFantasma>();

        PerdidasControl pc = other.GetComponent <PerdidasControl>();

        if (pc != null && est != null && !est.CogerEstadoFantasma())
        {
            GameManager.instance.EjecutarSonido(audioSource, "Goomba");
            pc.DesactivaControles(segundos, 0);
        }
    }
    private void OnCollisionEnter2D(Collision2D collision)
    {
        Rebote rebote = collision.gameObject.GetComponent <Rebote>();

        // Se usa en el if para ver si el jugador tiene el estado fantasma o no
        EstadoFantasma est = collision.gameObject.GetComponent <EstadoFantasma>();

        ContactPoint2D p      = collision.GetContact(0);
        Vector2        normal = p.normal;


        if (rebote != null && est != null && !est.CogerEstadoFantasma())
        {
            GameManager.instance.EjecutarSonido(audioSource, "Panzudo");
            //lo multiplicamos por -1 porque queremos que la fuerza se aplique en la direccion contraria al vector de la normal
            rebote.AplicarRebote(normal * -1, fuerzaRebote, tiempo);
        }
    }
예제 #4
0
    private void OnTriggerEnter2D(Collider2D other)
    {
        EstadoFantasma est = other.GetComponent <EstadoFantasma>();

        // Llamamos al ralentizar
        PerdidasControl pc = other.GetComponent <PerdidasControl>();

        if (pc != null && est != null && !est.CogerEstadoFantasma()) // Si no esta en modo fantasma
        {
            pc.ActivaModificaVelocidad(reduccionVelVigilante, 7);
        }

        if (this.gameObject.GetComponentInParent <SeguirObjetivo>() != null && est != null)  //Si este enemigo dispone de la capacidad de seguir al jugador
        {
            SeguirObjetivo so = this.gameObject.GetComponentInParent <SeguirObjetivo>();
            if (!est.CogerEstadoFantasma() && so.PuedeIniciarSeguimiento())
            {
                so.SigueAlJugador(other.transform);        //Si no está en modo fantasma y el enemigo puede iniciar un seguimiento
            }
        }                                                  //Autorizamos el seguimiento al jugador y pasamos su transform para gestionar su posición
    }