blob: baecd65da2dbd6214c2c0cf81d397e7df49aa4f8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
local FrameTimer = {}
FrameTimer.__index = FrameTimer
function FrameTimer:new(frameRate, totalFrames)
local obj = {
frameRate = frameRate or 10,
elapsedTime = 0,
currentFrame = 1,
totalFrames = totalFrames or 1
}
setmetatable(obj, FrameTimer)
self.frameTime = 1 / obj.frameRate
return obj
end
function FrameTimer:update(dt)
self.elapsedTime = self.elapsedTime + dt
if self.elapsedTime >= self.frameTime then
self.elapsedTime = self.elapsedTime - self.frameTime
self.currentFrame = self.currentFrame + 1
if self.currentFrame > self.totalFrames then
self.currentFrame = 1 -- repeat
end
end
end
return FrameTimer
|