Muitos anos atrás, eu codifiquei alguma IA para um jogo pseudo-3d de orçamento. Havia um cálculo que eu nunca descobri realmente a melhor maneira de fazer, e era calcular onde o inimigo terminaria se parasse agora. Por exemplo:
- O inimigo está atualmente em X = 540.0.
- O inimigo está se movendo a 10 pixels por quadro.
- Quando o inimigo quer parar, sua velocidade cairá 1 pixel por quadro até chegar a zero.
Existe uma fórmula simples que me daria a posição de onde o inimigo termina quando ele está totalmente parado? Acabei pré-calculando e codificando o deslocamento que funcionava para minhas necessidades, mas teria que ser calculado separadamente para inimigos com velocidades diferentes.
fonte
Eu tive exatamente o mesmo problema ao trabalhar no meu jogo, e levei uma eternidade para acertar as contas (bleh). Então aqui está:
Reescrito em matemática regular:
Onde a aceleração no seu caso é 1 e linearVelocity é 10:
EDITAR
O resultado e a explicação de Jimmy estão corretos. Minha fórmula requer que você também adicione metade da velocidade.
ou
fonte
Cálculos sobre mudanças de velocidade são o ponto principal do cálculo. Eu não faço isso há um tempo, então não me lembro de nada, mas acho que sua situação está simplesmente tomando a integral de -1 (ou seja, a desaceleração).
fonte
Não é esse constante movimento de aceleração?
Onde:
X: Última posição
Xi: Posição inicial
V: Velocidade
t: Tempo
a: Aceleração
A única parte complicada aqui é como determinar "t", já que desaceleramos com uma aceleração de -1, então podemos calcular t = V / a, então t é 10.
então,
Xi: 540
V: 10
t: 10
a: -1
Coloque tudo:
A fórmula vem da integração da aceleração: confira aqui
fonte