summaryrefslogtreecommitdiffhomepage
path: root/animated.lua
diff options
context:
space:
mode:
Diffstat (limited to 'animated.lua')
-rw-r--r--animated.lua81
1 files changed, 0 insertions, 81 deletions
diff --git a/animated.lua b/animated.lua
deleted file mode 100644
index 160ee44..0000000
--- a/animated.lua
+++ /dev/null
@@ -1,81 +0,0 @@
--- `Animated`
--- Abstract class for drawable animated entities.
-
--- Metatable
-Animated = {
- animations--[[table with animations]],
- current--[[animations.default]],
- sprite--[[love.graphics.newImage()]],
- frame = 1,
- delay = .1,
-}
-Animated.__index = Animated
-
--- Cleans up reference to sprite on deletion.
-function Animated:delete()
- self.sprite = nil
-end
-
--- Sets an Image as a sprite.
-function Animated:setSprite(image)
- self.sprite = image
-end
--- Returns current sprite Image.
-function Animated:getSprite()
- return self.sprite
-end
-
--- Sets new animations list.
-function Animated:setAnimationsList(t)
- if t then
- self.animations = t
- self:setAnimation("default")
- end
-end
-
--- Sets current animation by table key.
-function Animated:setAnimation(animation)
- self.frame = 1
- self.delay = Animated.delay -- INITIAL from metatable
- self.current = self.animations[animation]
-end
--- Returns current animation table.
-function Animated:getAnimation()
- return self.current
-end
-
--- Get frame quad for drawing.
-function Animated:getQuad()
- if self.animations and self.current then
- return self.current[self.frame]
- end
-end
-
--- Drawing self to LOVE2D buffer.
--- If there is no Quad, it will draw entire sprite.
-function Animated:draw(...)
- local s, q = self:getSprite(), self:getQuad()
- if s then
- love.graphics.setColor(255,255,255,255)
- if q then love.graphics.draw(s, q, ...)
- else love.graphics.draw(s, ...) end
- end
-end
--- Animation updating.
-function Animated:update(dt)
- if self.animations and self.current then
- self.delay = self.delay - dt
- if self.delay < 0 then
- self.delay = self.delay + Animated.delay -- INITIAL from metatable
- self:nextFrame()
- end
- end
-end
--- Moving to the next frame.
-function Animated:nextFrame()
- if self.current.repeated or not (self.frame == self.current.frames) then
- self.frame = (self.frame % self.current.frames) + 1
- else
- self:setAnimation("default")
- end
-end \ No newline at end of file