Bueno he estado programando un ojo volador que te persigue si estas a cierta distancia de el, cuando es se acerque a ti demasiado se detiene y empieza a disparar:
[gml]///Movimiento
// Chequea en un circule si esta el jugador
if collision_circle(x,y,200,objJugador,0,0) || debil{
// Se detiene
if !collision_circle(x,y,100,objJugador,0,0){
image_angle = direction
mp_potential_step(objJugador.x, objJugador.y, 2, false)
}else{
speed = 0
if !parar{
alarm[0] = 10
parar = true
image_angle = point_direction(x,y,objJugador.x+16,objJugador.y+16)
direction = image_angle
// Disparo
bala = instance_create(x,y,objOjoBala)
bala.direction = direction
bala.speed = 6
bala.image_angle = bala.direction
}
}
}else{
speed =0
}[/gml]
El problema con este codigo es que cuando se acerca y hay un obstaculo por el medio se detiene y te empieza a atacar, y las balas del ojo nunca llegaran pues estas se destruyen con el obstaculo.
Necesito una manera de verificar que haya obstaculos entre el ojo y el jugador.
Tenes la funcion collision_line