Página 1 de 1

Pode fazer uma ação se estiver perto do inimigo

Enviado: Sex Fev 24, 2023 8:32 pm
por Bernado
Olá. Estou com uma dúvida, Eu estava fazendo um ataque que o jogador lança uma bola de fogo que persegue um inimigo, ele funcionou, porém com muitos inimigos na tela ele vai em um inimigo em especifico mesmo ele estando longe.
https://youtu.be/OTkHIAaatnw
Aqui um vídeo para referencia. O retângulo amarelo é o alcance do ataque(Para não confundir eu só quero que tenha um alcance, mesmo com dois inimigos dentro do alcance ele só vai conseguir lançar no que estiver mais perto ou só conseguir lançar em um. O ataque tá funcionado). Obrigado

Re: Pode fazer uma ação se estiver perto do inimigo

Enviado: Sáb Fev 25, 2023 12:00 am
por Chuaschinai
Para você detectar o inimigo mais próximo, você pode utilizara função instance_nearest, que busca a objeto mais próximo e retorna seu id, e então usar point_direction para obter a direção.
Não sei a maneira que você esta usando para fazer o direcionamento e o movimento do projétil mas irei dar um exemplo:

Seria no objeto projétil, quando ele for criado ele pega o id do inimigo mais próximo.
[Create]

Código: Selecionar todos

inimigo_id = instance_nearest(x, y, obj_inimigo); // Inimigo mais proximo
speed = 2;  // Velocidade de movimento
Já que o inimigo vai ser perseguido o tempo todo precisamos atualizar a direção o tempo todo também.
[Step]

Código: Selecionar todos

// Checa se o inimigo ainda existe
if(instance_exists(inimigo_id)) {
	direction = point_direction(x, y, inimigo_id.x, inimigo_id.y);
}

Re: Pode fazer uma ação se estiver perto do inimigo

Enviado: Sáb Fev 25, 2023 1:22 pm
por Bernado
Chuaschinai escreveu: Sáb Fev 25, 2023 12:00 am Não sei a maneira que você esta usando para fazer o direcionamento e o movimento do projétil
Desculpa acabei esquecendo de por o código aqui está:

Código: Selecionar todos

//alcance
if distance_to_object(instance_nearest(x,y,Pai_inimigo)) <= 200 {
if(ataque)
{
 fogo_podi = true;
 if fogo_podi = true {
 image_index = 0;
 estado = "Lançar"
}
	 }
    }					
OBS: Pai_inimigo é para equivaler à todos os inimigos

Re: Pode fazer uma ação se estiver perto do inimigo  Tópico resolvido

Enviado: Sáb Fev 25, 2023 2:30 pm
por Chuaschinai
Coloque o código da onde ele lança o objeto fogo, esse código so muda o estado, ele não pega o id do mais próximo e sim checa se há um mais próximo.