/// <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); } }
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 }