Il y a une douzaine de façons de formuler cette question, mais pour garder ma pensée en ligne, je la formule en fonction de mon problème.
Je crée donc une plate-forme flottante que j'aimerais pouvoir simplement parcourir d'un point désigné à un autre, puis revenir au premier et passer entre les deux en ligne droite. Cependant, juste pour le rendre un peu plus intéressant, je veux ajouter quelques règles à la plateforme.
- Je le code pour parcourir des multiples de valeurs de tuiles entières de données mondiales. Donc, si la plate-forme n'est pas stationnaire, elle parcourra au moins une largeur ou une hauteur de tuile entière.
- Dans une longueur de tuile, je voudrais qu'il accélère d'un arrêt à une vitesse maximale donnée.
- En atteignant la distance d'une longueur de tuile, je voudrais qu'elle ralentisse jusqu'à un arrêt à une coordonnée de tuile donnée, puis répète le processus en sens inverse.
Les deux premières parties ne sont pas trop difficiles, essentiellement j'ai des problèmes avec la troisième partie. J'aimerais que la plate-forme s'arrête exactement à une coordonnée de tuile, mais étant donné que je travaille avec l'accélération, il semblerait facile de commencer simplement à appliquer l'accélération dans la direction opposée à une valeur stockant la vitesse actuelle de la plate-forme une fois qu'elle atteint la longueur d'une tuile de distance (en supposant que la tuile parcourt plus d'une longueur de tuile, mais pour garder les choses simples, supposons simplement que c'est le cas) - mais alors la question est quelle serait la valeur correcte pour que l'accélération augmente pour produire cet effet? Comment pourrais-je trouver cette valeur?
acceleration = desired_velocity - currentVelocity
Appliquez ensuite cette accélération comme vous le feriez normalement. Je vais créer une réponse un peu plus loin en montrant ce que je fais.