Buenas, soy nobato en gml y queria saber como escribo que "si no hai nada desde este punto hasta tal punto" para que entonces haga algo.

Pasa que estoy haciendo un juegillo de disparos y quiero ponerle una ia a cada enemigo (todos con la misma xd) y me tope con ese problema.

Quiero q cuando el enemigo esta, por ejemplo, en el mismo eje x pero en un eje y inferior en relacion a mi, me dispare, pero NO se como escribir eso, lo he intentado y no me sale (ya borre todos los scripts borradores dandome por vencido). ayuda plis.
HarpaX7

Hola :) Seria algo asi...

if object0.x < x
  {disparar= true}
o algo asi, dependiendo de que quieras hacer especificamente
.:RoskGames:.

Bueno, parece q no me expliqe bien.
quiero algo asi:
en el evento stepdel objeto enemigo.

if (estoy justo a la izquierda del objeto del player y no hai ningun objeto solido entre nosotros) then (la accion a realisar, la cual ya tengo... solo necesito la parte anterior)

Solo necesito lo q iria entre el if y el then
HarpaX7

#3 Febrero 06, 2015, 04:12:22 AM Ultima modificación: Febrero 06, 2015, 05:21:03 AM por penumbra
Suponiendo que el objeto sólido que PUDIERA haber entre jugador y enemigo se llamara obj_bloque:

[gml]
if ( (x - obj_jugador.x) < 0 ) and ( abs(y - obj_jugador.y) < 50 )
{
     var cl;
     cl = collision_line(x, y, obj_jugador.x, obj_jugador.y, obj_bloque, false, true)
     if (cl == noone)
     {
            //accion a realizar
     }
}
[/gml]

El código sólo funcionará cuando el enemigo esté a la izquierda del jugador, no a la derecha. Tampoco funcionará si enemigo y jugador están muy lejos en la coordenada y, es decir, la acción sólo se ejecuta si están más o menos emparejados en la coordenada y. Ten en cuenta que el código va en step, por lo que si la condición es verdadera, lo más probable es que la acción a realizar (por ejemplo un disparo), se va a ejecutar MUCHAS veces seguidas.

Así que debes adaptar el código (agregarle cosas o modificarlo) para que la acción sólo ocurra una vez cada, luego haya un tiempo de reposo, y luego se pueda volver a ejecutar.

EDITADO: Hice una corrección en la condición del if interior, porque la primera que puse estaba mal