Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Darkerman en Enero 16, 2016, 06:35:55 PM

Título: Ayuda con disparo estilo lanzaguisantes!
Publicado por: Darkerman en Enero 16, 2016, 06:35:55 PM
Ayuda por favor con disparos de un varios objetos disparen si otro esta en la misma posición "y" pero me da un error(las plantas no pueden disparar al mismo tiempo) uso este código en una alarm

if (instance_exists(obj_zombi))
{
    if (obj_zombi.y=y)
    {
        instance_create(x,y,obj_disparo)
    }
}

Se que el código es super simple pero en teoría no se nada de GML

P.D. No quiero que las "plantas" se la pasen disparando a lo imbécil todo el tiempo
Título: Re:Ayuda con disparo estilo lanzaguisantes!
Publicado por: Clamud en Enero 17, 2016, 02:12:57 AM
Debería ser así
[gml]
with( obj_zombi )
if( y == other.y )
instance_create( x,y, obj_disparo );
[/gml]
de esa forma se revisa la variable "y" de todas las instancias de obj_zombi, en el código anterior sólo se revisaba la primera instancia.
Título: Re:Ayuda con disparo estilo lanzaguisantes!
Publicado por: Darkerman en Enero 17, 2016, 02:57:46 AM
Cita de: Clamud en Enero 17, 2016, 02:12:57 AM
Debería ser así
[gml]
with( obj_zombi )
if( y == other.y )
instance_create( x,y, obj_disparo );
[/gml]
de esa forma se revisa la variable "y" de todas las instancias de obj_zombi, en el código anterior sólo se revisaba la primera instancia.
Pero el disparo no aparece en la planta
Título: Re:Ayuda con disparo estilo lanzaguisantes!
Publicado por: julianxx9 en Enero 17, 2016, 03:07:07 AM
entonces para que aparesca en la planta haz que el objeto disparo aparesca en la planta: [gml]instance_create( obj_planta.x,obj_planta.y, obj_disparo );[/gml]
Título: Re:Ayuda con disparo estilo lanzaguisantes!
Publicado por: Darkerman en Enero 17, 2016, 03:13:49 AM
Cita de: julianxx9 en Enero 17, 2016, 03:07:07 AM
entonces para que aparesca en la planta haz que el objeto disparo aparesca en la planta: [gml]instance_create( obj_planta.x,obj_planta.y, obj_disparo );[/gml]
Pero son varios objetos planta y solo dispara el que esta mas cerca de (0,0)
Título: Re:Ayuda con disparo estilo lanzaguisantes!
Publicado por: Darkerman en Enero 17, 2016, 03:22:09 AM
lo arregleeee!!!
De todos modos gracias a sus referencias lo logre
Aqui esta el codigo por si alguien lo quiere usar

var xx,yy

xx=x
yy=y

with(obj_zombi)
if(y==other.y)
instance_create(xx,yy,obj_disparo);
Título: Re:Ayuda con disparo estilo lanzaguisantes!
Publicado por: Clamud en Enero 17, 2016, 03:05:07 PM
Oops, se me pasó ese pequeño detalle, además se van a crear muchos disparos encimados si hay varios zombies en la misma línea horizontal. El código sería más óptimo si se escribe de esta forma:
[gml]
with( obj_zombi )
if( y == other.y )
{
    instance_create( other.x, other.y, obj_disparo );
    break;
}
[/gml]
Lo que hace la palabra with es ejecutar el código dentro del objeto que se indica; en el código de arriba, la variable "y" pertenece a una instancia de obj_zombi y "other.y" pertenece a la instancia que hizo la llamada al with.