2014-10-18 22:49:01 +00:00
|
|
|
Class = require 'hump.class'
|
|
|
|
require 'entities/entity'
|
|
|
|
|
2014-10-19 00:47:08 +00:00
|
|
|
AnimationFrames = Class {
|
2014-10-18 22:49:01 +00:00
|
|
|
frames = {},
|
|
|
|
|
2014-10-19 02:14:12 +00:00
|
|
|
init = function(self, basename, numFrames, fps, fadeOut)
|
2014-10-19 00:26:23 +00:00
|
|
|
for frame = 0, numFrames - 1 do
|
2014-10-18 22:49:01 +00:00
|
|
|
self.frames[frame] = love.graphics.newImage(string.format(basename, frame))
|
|
|
|
end
|
|
|
|
|
2014-10-19 00:26:23 +00:00
|
|
|
self.fps = fps
|
2014-10-19 00:47:08 +00:00
|
|
|
self.numFrames = numFrames
|
2014-10-19 00:26:23 +00:00
|
|
|
self.width = self.frames[0]:getWidth();
|
|
|
|
self.height = self.frames[0]:getHeight();
|
2014-10-18 22:49:01 +00:00
|
|
|
self.quad = love.graphics.newQuad(0, 0, self.width, self.height, self.width, self.height)
|
2014-10-19 02:14:12 +00:00
|
|
|
self.fadeOout = fadeOut
|
2014-10-19 00:47:08 +00:00
|
|
|
end
|
|
|
|
}
|
|
|
|
|
|
|
|
Animation = Class{
|
|
|
|
__includes = Entity,
|
|
|
|
|
|
|
|
curFrame = 0,
|
|
|
|
|
|
|
|
init = function(self, x, y, level, frames)
|
|
|
|
Entity.init(self, x, y, level)
|
|
|
|
|
|
|
|
self.frames = frames
|
|
|
|
self.angle = 0
|
|
|
|
self.x = x
|
|
|
|
self.y = y
|
2014-10-18 22:49:01 +00:00
|
|
|
end;
|
|
|
|
|
|
|
|
draw = function(self)
|
2014-10-19 00:47:08 +00:00
|
|
|
local img = self.frames.frames[math.floor(self.curFrame)]
|
2014-10-19 00:26:23 +00:00
|
|
|
if img then
|
2014-10-19 02:14:12 +00:00
|
|
|
if self.frames.fadeOout then
|
|
|
|
love.graphics.setColor(255, 255, 255, 255 * (1.0 - self.curFrame / self.frames.numFrames))
|
|
|
|
else
|
|
|
|
love.graphics.setColor(255, 255, 255)
|
|
|
|
end
|
2014-10-19 00:47:08 +00:00
|
|
|
love.graphics.draw(img, self.frames.quad, self.x, self.y, self.angle, 1, 1, self.frames.width / 2, self.frames.width / 2)
|
2014-10-18 22:49:01 +00:00
|
|
|
end
|
|
|
|
end;
|
|
|
|
|
|
|
|
update = function(self, dt)
|
2014-10-19 00:47:08 +00:00
|
|
|
self.curFrame = self.curFrame + dt * self.frames.fps
|
2014-10-19 01:48:59 +00:00
|
|
|
if self.curFrame >= self.frames.numFrames then
|
|
|
|
self:delete()
|
|
|
|
end
|
2014-10-18 22:49:01 +00:00
|
|
|
end;
|
|
|
|
}
|