added draw functions for setScale, rehandled scale, animations now have multiple frame times (this breaks some minor stuff)

This commit is contained in:
lustlion
2022-02-24 04:15:35 +01:00
parent 00cec59351
commit 54f6a46428
19 changed files with 139 additions and 53 deletions

View File

@@ -5,7 +5,6 @@ function Animation:New(anim_data)
o.path = anim_data.path
o.frames = anim_data.frames
o.speed = anim_data.speed
o.imgs = anim_data.imgs
o.subframe = 0
o.frame = 1
@@ -26,8 +25,8 @@ end
-- to manually handle what frame
function Animation:DrawFrame(frame, x, y, rotate, sx, sy)
if frame > self.frames then
frame = self.frames
if frame > #self.frames then
frame = #self.frames
end
local x = x or 0
local y = y or 0
@@ -45,18 +44,18 @@ end
-- to linearly animate
function Animation:Animate()
if self.speed ~= 0 then
if self.frames[self.frame] ~= 0 then
-- try to animate
self.subframe = self.subframe + current_dt
if self.subframe > self.speed then
self.frame = self.frame + 1
self.subframe = self.subframe - self.speed
if self.subframe > self.frames[self.frame] then
self.subframe = self.subframe - self.frames[self.frame]
self.frame = self.frame + 1
end
-- cycle
if self.frame >= self.frames+1 then
self.frame = self.frame - self.frames
if self.frame >= #self.frames+1 then
self.frame = self.frame - #self.frames
end
end
end