Como aumenta a velocidade de queda de um personagem?

20/12/2022

0

boa noite a todos que estão vendo este tópico, sou iniciante e estou criando meu primeiro projeto no Unity 3D, porém acabei me deparando com um "erro" não é bem um erro, mas, ainda assim é complicado de um iniciante resolver, consegui programar o movimento para o eixo x, y, porém o pulo foi o que complicou, consegui programar o pulo etc, porém, o "personagem" que ainda é uma capsula kkkkk cai em câmera lenta kkkkkk e meio que da uns jumps no ar mesmo sem estar colidindo no chão kkkkkkkkk mas essa parte talvez eu saiba resolver, é só alterar o intervalo de tempo para cada pulo né? mas o pulo em câmera lenta eu não sei resolver. Não é bem em camera lenta, mas, cai muito devagar.
Cristian Vieira

Cristian Vieira

Responder

Posts

28/12/2022

Arthur Heinrich

Você criou equações para descrever o movimento, que pode ser decomposto em dois vetores: um horizontal, representado pelo eixo x e outro vertical, representado pelo eixo y.

Supondo que seu personagem está correndo "horizontalmente", a velocidade em x (Vx) é uma constante. Ao saltar, inicia-se um movimento composto entre Vx e Vy, que aponta inicialmente para cima.

Em um movimento acelerado, como o da gravidade, a equação que descreve o movimento vertical é:

y = y0 + v0*t + (a*t^2)/2

Colocando o referencial y para cima, temos:

y0 = 0, pois o personagem está no chão, quando inicia o salto.
v0 = ?, velocidade do salto, digamos 1 m/s
a = -10 m/s^2, negativo porque a gravidade aponta para a direção oposta ao eixo Y
t é o tempo, contado a partir do início do salto.

Ficamos então com:

y = 0 + 1*t + ( -10*t^2 )/2

Podemos calcular o tempo que o salto dura, calculando os horários em que y vale zero.

-5*t^2 + t + 0 = 0
Delta = Sqtr( b^2 - 4*a*c ) = Sqrt( 1*1 - 4*(-5)*0 ) = 1

t = ( -b +/- Sqtr( Delta ) )/(2*a) = (-1 +/- Sqrt(1) )/(2*(-5))

t1 = 0 (início do salto)
t2 = 0,2 s

Se achar que o tempo é curto demais, aumente a velocidade inicial V0.

Se seu programa controla o tempo "t" continuamente, basta registrar o momento do salto Ts e substituir a variável t por (t-Ts).
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar