class LineCreate : Animation
{
Line l => AssertTargetIsLine(Target);
Vector2 finalEnd;
static Line AssertTargetIsLine(FrameObject target)
{
if (target is not Line l)
throw new Exception("Target object must be a line");
return l;
}
public override void Start()
{
finalEnd = l.End;
l.InterpolateEnd(0, finalEnd);
base.Start();
}
public override void Update(float dt)
{
float percent = LocalTime / Duration;
percent = EaseFunc(percent);
l.InterpolateEnd(percent, finalEnd);
base.Update(dt);
}
public override void End()
{
l.InterpolateEnd(1, finalEnd);
base.End();
}
}
class LineCreate : Animation
{
Line l => AssertTargetIsLine(Target);
Vector2 finalEnd;
static Line AssertTargetIsLine(FrameObject target)
{
if (target is not Line l)
throw new Exception("Target object must be a line");
return l;
}
public override void Start()
{
finalEnd = l.End;
l.InterpolateEnd(0, finalEnd);
base.Start();
}
public override void Update(float dt)
{
float percent = LocalTime / Duration;
percent = EaseFunc(percent);
l.InterpolateEnd(percent, finalEnd);
base.Update(dt);
}
public override void End()
{
l.InterpolateEnd(1, finalEnd);
base.End();
}
}