SimpleJavaEngine/src/main/java/speiger/src/coreengine/math/value/LiniarValue.java

47 lines
918 B
Java

package speiger.src.coreengine.math.value;
import speiger.src.coreengine.math.MathUtils;
public class LiniarValue extends Value
{
final float startValue;
final float endValue;
boolean smooth = false;
public LiniarValue(float duration, float startValue, float endValue)
{
this(0F, duration, startValue, endValue);
}
public LiniarValue(float start, float duration, float startValue, float endValue)
{
super(start, duration);
this.startValue = startValue;
this.endValue = endValue;
}
public LiniarValue setSmooth()
{
smooth = true;
return this;
}
public LiniarValue setSmooth(boolean smooth)
{
this.smooth = smooth;
return this;
}
@Override
protected float calculateProgress(float time)
{
return smooth ? MathUtils.smoothLerp(startValue, endValue, time) : MathUtils.lerp(startValue, endValue, time);
}
@Override
protected void onFinished()
{
finishProgress();
}
}