SmoothStep no lo ayudará aquí. SmoothStep es una función de interpolación de dos valores. Hace algo similar a una interpolación sinusal. Se acelerará lentamente, tendrá una velocidad aguda alrededor de x = 0.5 y luego ralentizará la llegada (x = 1.0).
como la siguiente:
Esta es aproximada, la función real no tiene estos números exactos.
Sí, podría usar x = 0..0.5 para lograr el efecto que desee, pero con muy poco control sobre la curva de aceleración.
Si realmente quieres acelerar un automóvil o cualquier otro objeto, lo mejor que puedes hacer es realizar un seguimiento de la aceleración y la velocidad por ti mismo.
class Car : GameComponent
{
public override void Update(GameTime time)
{
velocity += acceleration * time.ElapsedGameTime.TotalSeconds;
position += velocity * time.ElapsedGameTime.TotalSeconds;
}
Vector3 position;
Vector3 velocity;
Vector3 acceleration;
}
posición, velocidad y aceleración siendo Vector2 o Vector3 dependiendo de cuántos dimensión de su estado de juego está utilizando. Además, tenga en cuenta que esta forma de integración es propensa a pequeños errores matemáticos.
Cuando necesita interpolar números discretos en números reales y necesita que la pendiente de los puntos clave sea cero. Digamos que quería que su auto comenzara lentamente en un momento preciso y luego se detuviera lentamente en un momento muy preciso, luego SmootStep lo ayudaría. – Coincoin
También podría ser muy útil para todo tipo de transiciones de animación, como los menús. – Coincoin
si tiene ejemplos, por favor publique :) – Moulde