Hello DevForum users!
So i am making a lerp library, i am not such a professional but i wanna learn.
Anyway, theres a part of the code that uses a RunService so i can optimize the loops a lot instead of doing a loop per lerp.
I create this post because it looks, kinda bad, to be honest, it works, but feels like unorganized.
Any feedback would be awesome!
RunService.Heartbeat:Connect(function(deltaTime: number)
-- Get all lerps
for index, self in Lerps do
self.Time += deltaTime
-- Add delta to lerp time
local AlphaGoal = self.Alpha
local alpha = self.Time / self.Info.Duration -- Get alpha
if alpha >= AlphaGoal then
self.DTime += deltaTime
-- If alpha goal completed
if self.Info.DelayTime >= 0 then
if self.DTime < self.Info.DelayTime then continue end
end
-- Reset values
ResetLerp(self)
self.Completed:Fire()
-- Verify loop
if self.Info.RepeatCount <= -1 then
if self.Info.Reverses then
-- If reverses then set goal to starting
self.Reverse = not self.Reverse
if not self.Reverse then
self.Object.CFrame = self.Starting
else
self.Object.CFrame = self.Value
end
else
self.Object.CFrame = self.Starting
end
self:Play(self.Alpha)
else
self.Object.CFrame = self.Value
self.Alpha = 0
end
table.remove(Lerps,index)
else
self:Play(alpha)
self.DTime = 0
end
end
end)
