SmoothStep nie pomoże tutaj. SmoothStep jest funkcją interpolacji dwóch wartości. Robi coś podobnego do interpolacji zatok. Przyspieszy powoli, osiągając ostrą prędkość około x = 0,5, a następnie zwalniając do przybycia (x = 1,0).
tak:
Jest to przybliżona, rzeczywista funkcja nie mają tych dokładnych liczb.
Tak, można użyć x = 0..0.5, aby uzyskać pożądany efekt, ale z bardzo małą kontrolą nad krzywą przyspieszenia.
Jeśli chcesz naprawdę przyspieszyć samochód lub inny obiekt, najlepiej byłoby śledzić przyspieszenie i prędkość.
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;
}
Pozycja, prędkość i przyspieszenie będące Vector2 lub Vector3 w zależności od tego, ile wymiarów używa twój stan gry. Należy również pamiętać, że ta forma integracji jest podatna na niewielkie błędy matematyczne.
Gdy potrzebujesz interpolować dyskretne liczby na liczby rzeczywiste, a punkt klucza musi mieć wartość zero. powiedzmy, że chciałeś, aby twój samochód zaczął powoli w określonym momencie, a potem powoli zatrzymał się w bardzo precyzyjnym momencie, a wtedy SmootStep pomógłby ci w tym. – Coincoin
Może to również być bardzo przydatne w przypadku wszystkich przejść animacji, takich jak menu. – Coincoin
jeśli masz przykłady, proszę pisać :) – Moulde