Skrypt działa dobrze, niestety ten eyesight jest stały nie idzie z rotacją przeciwnika i nie podąża za graczem, przez co przeciwnik ma możliwość obrotu tylko przez pierwszy warunek "angle<=20"
Chociaż kręciłem się w kółko przeciwnika, on przestawał do mnie strzelać, gdy nie znajdowałem się w eyesight.
Jeszcze pozostaje kwestia podążania, gdy przeciwnik mnie zauważy ma nie tylko strzelać, ale także podążać za przeciwnikiem. Czy da się też stworzyć pathfinding, aby przeciwnik nie wchodził w ściany?
Poniżej daję kod, który dałem do step'u przeciwnika
GML
angle=((((direction - point_direction(x,y,obj_player.x,obj_player.y)) mod 360) + 540) mod 360) - 180
canshoot-=1
if(angle<=20 and point_distance(x,y,obj_player.x,obj_player.y)<=300)
if collision_line(x,y,obj_player.x,obj_player.y,obj_wall,true,true)<0{
image_angle=point_direction(x,y,obj_player.x,obj_player.y)
if canshoot<0
{
canshoot=5
shot=instance_create(x,y,obj_enemyshoot)
shot.direction=image_angle
shot.image_angle=image_angle
shot.speed=16
}
}
if hp<1 instance_destroy()