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. :-[
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]
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