O código que você precisa, depende muito do código que você já usa em seu jogo.
O método que eu farei abaixo pode ser facilmente adaptado, desde que você realmente entenda o que foi feito.
A primeira coisa que você precisa saber, é de que lado o jogador está sob o ponto de vista do boss. Usaremos este código no step do boss:
Não se esqueça de declarar a variável "ladoDoJogador" no create (seu valor inicial pode ser -1 ou 1. Você entenderá porque).
Explicação do código: "sign" é uma função que pega o valor que ela carrega como argumento (no caso, obj_jogador.x - x) e retorna -1 se o valor for negativo, 0 se o valor for zero ou 1 se o valor for positivo. Dessa forma, sabemos que se "ladoDoJogador" valer 1, o jogador está a direita do boss, se valer -1, está à esquerda, e, se estiver 0, ele está no mesmo lugar que o boss.
Essa variável é vital para o resto do código, portanto tenha certeza que entendeu sua função.
Feito isso, podemos tratar o sprite para que ele olhe pro lado do jogador. Depende muito da forma que você troca de sprite, mas, no caso, apenas inverterei a imagem dependendo do lado que o personagem está. Ainda no step do boss, coloque:
Checamos se ladoDoJogador não vale zero porque este valor faria o sprite sumir!
Se o valor permitir, image_xscale irá espelhar a imagem adequadamente.
A parte de movimentação é com você! Mas você pode fazer desta maneira:
Código: Selecionar todos
//Step ou no local que você faz a movimentação
if (ladoDoJogador == 1){
//Move-se para a direita
}else if (ladoDoJogador ==-1){
//Move-se para a esquerda
}
Este é um método simples, mas talvez não tão fácil de entender.
Dúvidas é só falar! Boa sorte e bons estudos!