Files
MinecraftConsoles/Minecraft.World/SmoothFloat.cpp
2026-03-01 12:16:08 +08:00

29 lines
654 B
C++

#include "stdafx.h"
#include "SmoothFloat.h"
SmoothFloat::SmoothFloat()
{
targetValue = 0.0f;
remainingValue = 0.0f;
lastAmount = 0.0f;
}
float SmoothFloat::getNewDeltaValue(float deltaValue, float accelerationAmount)
{
targetValue += deltaValue;
deltaValue = (targetValue - remainingValue) * accelerationAmount;
lastAmount = lastAmount + (deltaValue - lastAmount) * 0.5f;
if ((deltaValue > 0 && deltaValue > lastAmount) || (deltaValue < 0 && deltaValue < lastAmount))
{
deltaValue = lastAmount;
}
remainingValue += deltaValue;
return deltaValue;
}
float SmoothFloat::getTargetValue()
{
return targetValue;
}