Obrigado por visitar a The Game Makers Brasil 😁 Use o fórum de Dúvidas para fazer perguntas. Se está em busca de aprender dê uma olhada nos tutoriais.

Problemas na movimentação do inimigo

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
Santana
Artista
Artista
Reações: 0
Mensagens: 8
Contato:

Problemas na movimentação do inimigo

Mensagem por Santana » Qui Mai 07, 2020 6:07 pm

Escrevi o código do inimigo, mas quando roda o jogo ele não se move, apenas quando o player da dano nele, mas mesmo assim é aleatório, as vezes quando morre ele faz a animação de morte, mas no final ele volta e fica andando, quando não é isso, ele anda mas fica intangível. E pra completar, quando bate na parede ele não volta, só fica parado.
SPOILER: Clique para ver o conteúdo

Avatar do usuário
Rodrigo_GM
Membro
Membro
Reações: 0
Mensagens: 23

Re: Problemas na movimentação do inimigo

Mensagem por Rodrigo_GM » Sex Mai 08, 2020 2:25 pm

Olá, olhei aqui e vi alguns erros, talvez isso seja o problema.

O primeiro é que vc não declarou um sprite diferente para o case "walk", por causa disso ele n acrescentar nada a variável "velh", ai o objeto fica parado.

O Segundo erro é em.

Código: Selecionar todos

if(image_index > image_number -1)
{ //ação que vc quer }
O correto deveria ser, checar se o "image_index" está com o mesmo valor que "image_number -1", não com um valor maior.
Tambem percebi que vc não definiu um local para chama o  "case "attack" " Você pode colocar assim no case "parado" ou no "walk" .

Código: Selecionar todos

//checando se o play esta proximo
     if distance_to_object(obj_player) < 64
     {
        if x < obj_player.x {velh=1;} else { if x > obj_player.x{velh=-1} }
     
        if distance_to_object(obj_player) < 1  {velh=0; estado = "attack";}
     }
A respeito da colisão com objeto, vc só precisar define para mudar a variável "velh" quando uma colisão for verdadeira, tipo assim.

Código: Selecionar todos

if hspeed<0 // esqueda
{

image_xscale=-1; // inverte a imagem. 
if collision_line(x-16,y,x-32-hspeed,y,obj_casa,0,0) // colisão por linha
{velh=1;}

}else
    {
        if hspeed>0// direita
        {
            image_xscale=1;
            if collision_line(x+16,y,x+32+hspeed,y,obj_casa,0,0) // colisão por linha
                {velh=-1;}
        }
    }
Lembrando que o "Obj_casa" no código acima é somente um exemplo, troque pelo objeto que for seu obstaculo.

Avatar do usuário
Santana
Artista
Artista
Reações: 0
Mensagens: 8
Contato:

Re: Problemas na movimentação do inimigo

Mensagem por Santana » Ter Mai 19, 2020 4:08 pm

Fiz isso, mas agora o inimigo fica escolhendo pra onde ir o tempo todo, então ele não sai do lugar. Já no ataque eu quero que ele faça a animação e pare no ultimo frame, como faz isso? Do que tentei ele fazia 3 vezes a animação e voltava a andar

Responder

Quem está online

Usuários navegando neste fórum: Ahrefs [Bot] e 9 visitantes