Página 1 de 1

Ajuda com animação do personagem

Enviado: Qua Ago 21, 2019 7:02 pm
por DarlesLSF
Boa noite pra todos, seguinte: quando eu aperto as teclas de movimentação, não rola animação da sprite (primeira parte do video). Agora se eu aperto e seguro as teclas de movimentação, a animação flui normalmente. Como faço pra arrumar isso?
Imagem

Re: Ajuda com animação do personagem

Enviado: Qua Ago 21, 2019 7:07 pm
por None
Baseia a animação na velocidade e não no pressionar de teclas.

Re: Ajuda com animação do personagem

Enviado: Qua Ago 21, 2019 7:37 pm
por DarlesLSF
No caso, esse é meu código:

Código: Selecionar todos

script_execute(teclas);
xaxis = (direita - esquerda);
yaxis = (baixo - cima);

// direção
var dir = point_direction(0,0, xaxis, yaxis);

if (xaxis == 0) && (yaxis == 0)
{
    len = 0;
} else
{
    len = vel;
}

hspd = lengthdir_x(len, dir);
vspd = lengthdir_y(len, dir);

image_speed = sign(len) * .1;
if (len == 0)
{
    image_index = 1;
}

if (vspd > 0)
{
    sprite_index = spr_sarhabaixo;
} else if (vspd < 0)
{
    sprite_index = spr_sarhacima;
}
if (hspd > 0)
{
    sprite_index = spr_sarhadireita;
} else if (hspd < 0)
{
    sprite_index = spr_sarhaesquerda;
}
Mesmo me baseando na velocidade, se eu apertar e soltar a tecla rapidamente, ainda assim fica igual o começo do gif acima.

Re: Ajuda com animação do personagem

Enviado: Qua Ago 21, 2019 7:57 pm
por None
Seu código tá certo.

O que acontece é que tu falou que se a velocidade for 0 então a imagem é estática só isso, e ao tocar e soltar rápido você zera a velocidade.

Re: Ajuda com animação do personagem

Enviado: Qua Ago 21, 2019 8:04 pm
por DarlesLSF
None escreveu:Seu código tá certo.

O que acontece é que tu falou que se a velocidade for 0 então a imagem é estática só isso, e ao tocar e soltar rápido você zera a velocidade.
E tem como fazer a animação rolar mesmo apertando e soltando rápido as teclas?

Re: Ajuda com animação do personagem

Enviado: Qua Ago 21, 2019 8:07 pm
por None
Tu pode fazer o que você quiser ué, é só conseguir pensar na lógica.

O que me vem agora na mente é usar uma função de aceleração e desaceleração, assim ao soltar a tecla ele não para na hora e a velocidade se mantém mais um pouco


Mas eu te aconselho a usar uma state machine, fica muito mais fácil de trabalhar.


Aliás, não sei se tu tem interesse, mas te aconselho a dar uma olhada no meu curso, lá tem MUITO conteúdo e acho que ele poderia te ajudar.