Boa noite, tudo bem ? Espero que sim !!
Para criar isso oque você quer vamos usar a função chamada collision_circle();
primeiro vamos entende-la !! collision_circle(X DO NOSSO OBEJTO, Y DO NOSSO OBJETO, DIAMETRO DO CIRCULO(TAMANHO), QUAL OBJETO VAMOS VERIFICAR SE O CIRCULO COLIDIU, false, false)(Esses dois ultimos são irrelevantes para oque queremos então vamos deixar em false !).
Seguindo adiante, no objeto que vai verificar as colisões em RANGE você vai fazer duas coisas, primeira você vai criar um evento desenhar (Event Draw), coloque isso:
Código: Selecionar todos
draw_self(); // Desenha a si mesmo
draw_circle(x + sprite_width/2, y + sprite_height/2, 80, true); // Desenha nosso cirulo (RANGE);
A segunda função funciona idêntica a função do collision_circle, porem ele desenha um circulo com um raio de 80cm o TRUE é para se o círculo é desenhado preenchido (falso) ou como um desenho de um pixel de largura (verdadeiro), lembre-se que esse valor deve ser o mesmo que vai na função do collision_circle.
Agora você precisa encontrar o centro do seu X e Y, e como fazer isso ? o seu X e Y são baseados na sua sprite, então dentro dela sabemos onde começa o nosso X e Y:
Em meu exemplo o X e Y estão no centro da Sprite, então não preciso alterar nada, nosso circulo ficara no centro sem problema nenhum! Agora vamos supor que não esteja assim, como resolver ? Iremos fazer isso
Código: Selecionar todos
draw_circle(x + sprite_width/2, y + sprite_height/2, 80, true);
Com isso nos pegamos o tamanho da nossa sprite dividimos em 2 para obter o centro !!, agora que terminamos isso vamos para a parte lega !!
No seu objeto que vai detectar os inimigos coloque no evento etapa (Event Step):
Código: Selecionar todos
if collision_circle(x + sprite_width/2, y + sprite_height/2, 80, objColisWall, false, false) {
show_debug_message("Colidiu na parede");
} else {
show_debug_message("TA SUAVVE");
}
Aqui estou verificando se nosso circulo colidiu com a parede, feito isso você pode comenta a linha do desenhar, mantendo apenas o draw_self();
Ja esta funcionando !! Ficou alguma duvida ?? Aqui esta modelo que fiz para este
EXEMPLO !!