Você está dando move_toward direto no player.
Você tem que pegar a posição do player no MOMENTO em que o tiro sai, ou seja, no momento em que o tiro é criado, vc armazena assim:
Supondo que o objeto de tiro e do player são respectivamente obj_tiro_inimigo e obj_player.
Dentro do evento onde o inimigo atira:
Código: Selecionar todos
tiro = instance_create(x,y,obj_tiro_inimigo)
tiro.x_destino = obj_player.x
tiro.y_destino = obj_player.y
E no move toward que tem atualmente dentro do obj_tiro_inimigo vc muda para:
E não esquece de declarar no create do obj_tiro_inimigo:
O que vai acontecer?
Ele vai atirar na direção do player, mas não vai ficar seguindo, se o tiro ficar seguindo o player não há chance dele desviar.
Se o jogo passar a ficar muito fácil depois disso, manda o inimigo atirar mais balas que vc vai ver que legal que vai ficar.
EDIT: O código acima a bala vai parar quando chegar naquele ponto x,y destino, nesse caso seria melhor usar isso para o tiro não parar:
Código: Selecionar todos
tiro = instance_create(x,y,obj_tiro_inimigo)
tiro.direction = point_direction(x, y, obj_player.x, obj_player.y)
tiro.speed = 10
E retirar o move_toward do step ou seja la onde estiver.