Tengo 2 objetos (personaje y villano). cuando colisionan se empiezen a atacar. Pero si quiero aparecer otra instancia del mismo objeto "villano", quiero que la segunda instancia ignore al objeto "personaje" ya que ya se esta atacando con la primera instancia de villano.

#1 Marzo 20, 2016, 03:55:08 AM Ultima modificación: Marzo 20, 2016, 05:15:02 AM por NiuWeb
Podrías declarar en el objeto personaje una variable atacando, activarla cuando el villano esté atacando y desactivarla cuando no. Y cuando un nuevo villano aparece, compruebe si está atacando, y de no ser así, atacar.
[gml]
///Create del personaje
atacando = false;
[/gml][gml]
///Colisión del villano con el personaje, el objeto es el villano
if other.atacando = false
{
    //Lo que haces para "atacar"
    other.atacando = true;
}
[/gml]
Y debes comprobar que cuando no se esté colisionando con ningún villano, se desactive la variable
[gml]
///Evento step del personaje
if !place_meeting(x, y, villano)
atacando = false;
[/gml]

Todo inventado, no lo he comprobado.
alaberga regué el café.

BA:STFW&RTFM

Cita de: NiuWeb en Marzo 20, 2016, 03:55:08 AM
Podrías declarar en el objeto personaje una variable atacando, activarla cuando el villano esté atacando y desactivarla cuando no. Y cuando un nuevo villano aparece, compruebe si está atacando, y de no ser así, atacar.
[gml]
///Create del personaje
atacando = false;

///Colisión del villano con el personaje, el objeto es el villano
if other.atacando = false
{
    //Lo que haces para "atacar"
    other.atacando = true;
}
[/gml]
Y debes comprobar que cuando no se esté colisionando con ningún villano, se desactive la variable
[gml]
///Evento step del personaje
if !place_meeting(x, y, villano)
atacando = false;
[/gml]

Todo inventado, no lo he comprobado.

Te comento que si funciona en una parte. Los dos se dejan de atacar, pero la segunda instancia sigue colisionando con el personaje y no avanza (se quedan como pegados).

Gracias por la ayuda  :)