Il y a plusieurs années, j'ai codé de l'IA pour un jeu pseudo-3d à petit budget. Il y avait un calcul que je n'ai jamais vraiment trouvé la meilleure façon de faire, et c'était de calculer où l'ennemi finirait s'il s'arrêtait maintenant. Par exemple:
- L'ennemi est actuellement à X = 540,0.
- L'ennemi se déplace à droite à 10 pixels par image.
- Lorsque l'ennemi veut s'arrêter, sa vitesse diminue de 1 pixel par image jusqu'à ce qu'elle atteigne zéro.
Existe-t-il une formule simple qui me permettrait de retrouver la position où l'ennemi se retrouve lorsqu'il est complètement arrêté? J'ai fini par précalculer et coder en dur l'offset qui fonctionnait pour mes besoins mais qui devait être calculé séparément pour les ennemis avec des vitesses différentes.
la source
J'ai eu exactement le même problème lorsque je travaillais sur mon jeu, et il m'a fallu une éternité pour bien calculer (bleh). Voici donc:
Réécrit en mathématiques régulières:
Où l'accélération dans votre cas est 1 et la vitesse linéaire est 10:
ÉDITER
Le résultat et l'explication de Jimmy sont tous deux corrects. Ma formule exige que vous ajoutiez également la moitié de la vitesse.
ou
la source
Les calculs sur les changements de vitesse sont le point entier du calcul. Je ne l'ai pas fait depuis un moment donc je ne me souviens pas du haut de ma tête, mais je pense que votre situation prend simplement l'intégrale de -1 (c'est-à-dire la décélération).
la source
N'est-ce pas ce mouvement d'accélération constante?
Où:
X: Dernière position
Xi: Position initiale
V: Vitesse
t: Temps
a: Accélération
La seule partie délicate ici est de savoir comment déterminer "t", car nous ralentissons avec une accélération de -1, puis nous pouvons calculer t = V / a, puis t est 10.
donc,
Xi: 540
V: 10
t: 10
a: -1
Mettez tout sur:
La formule vient en prenant l'intégration de l'accélération: Vérifiez ici
la source