Hola estaba haciendo un tower defence estilo plantas vs zombies y necesitaba saber como puedo hacer que mi objeto "obj_Planta" dispare "obj_Guisante" cuando el "obj_Enemigo" aparezca a la derecha de él, lo había intentado pero lo que paso es que disparaban de todas las filas aunque no hayan enemigos en la misma ya que puse que dispare si el "obj_Enemigo" esta dentro de un rango. :-[

#1 Abril 25, 2016, 12:29:20 AM Ultima modificación: Abril 25, 2016, 12:39:38 AM por NiuWeb
Puedes intentar usar un collision_line() para detectar si hay alguna colisión con una instancia de obj_Enemigo al frente.
Por ejemplo, en el obj_Planta, evento <create>:
[gml]
disparo = 0;
[/gml]
Y en <step>:
[gml]
var colision;
colision = collision_line(x, y, room_width, y, obj_Enemigo, false, true);
if (colision != noone) { //Si hay un enemigo en frente suyo
    if (disparo < 30) {
        disparo ++;
    }
    else { //Y si puede disparar
        var bala;
        disparo = 0;
        bala = instance_create(x, y, obj_Planta); //Disparar
        bala.hspeed = 12; //con una velocidad de 12
    }
}
[/gml]
alaberga regué el café.

BA:STFW&RTFM

Cita de: NiuWeb en Abril 25, 2016, 12:29:20 AM
Puedes intentar usar un collision_line() para detectar si hay alguna colisión con una instancia de obj_Enemigo al frente.
Por ejemplo, en el obj_Planta, evento <create>:
[gml]
disparo = 0;
[/gml]
Y en <step>:
[gml]
var colision;
colision = collision_line(x, y, room_width, y, obj_Enemigo, false, true);
if (colision != noone) { //Si hay un enemigo en frente suyo
    if (disparo < 30) {
        disparo ++;
    }
    else { //Y si puede disparar
        var bala;
        disparo = 0;
        bala = instance_create(x, y, obj_Planta); //Disparar
        bala.hspeed = 12; //con una velocidad de 12
    }
}
[/gml]
Gracias me sirvio