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
Curtir tópico
+ 0
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).
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
Clique aqui para fazer login e interagir na Comunidade :)