55 lines
1.2 KiB
Lua
55 lines
1.2 KiB
Lua
local window = require("window")
|
|
local room = require("room")
|
|
local edge = require("edge")
|
|
|
|
local clock_size = 60
|
|
local arm_size = 55
|
|
|
|
local m = room:new()
|
|
|
|
local from = m.from
|
|
function m:from(t)
|
|
local sd = from(self, t)
|
|
|
|
sd.tick = 0
|
|
sd.ni = 1
|
|
|
|
edge.set(sd, 'down', sd.room)
|
|
|
|
register(sd)
|
|
|
|
return sd
|
|
end
|
|
|
|
m.draw = window.draw(function (self)
|
|
love.graphics.circle('fill', 160, 120, clock_size, 12)
|
|
|
|
local s = math.pi * self.numbers[self.ni] / 6
|
|
local x = 160 + arm_size * math.sin(s)
|
|
local y = 120 - arm_size * math.cos(s)
|
|
local n = 120 - arm_size
|
|
|
|
love.graphics.setColor(0, 0, 0)
|
|
love.graphics.polygon('fill', 160, n, 160, 120, x, y)
|
|
love.graphics.setColor(1, 1, 1)
|
|
love.graphics.polygon('fill', 160, n, 160, 120, 140, n)
|
|
love.graphics.setColor(0, 0, 0)
|
|
love.graphics.polygon('line', 160, n, 160, 120, 140, n)
|
|
love.graphics.setColor(1, 1, 1)
|
|
|
|
self.edges[1]:draw()
|
|
end)
|
|
|
|
function m:update(dt)
|
|
self.tick = self.tick + dt
|
|
|
|
if self.tick > 2 then
|
|
self.tick = self.tick - 2
|
|
self.ni = self.ni + 1
|
|
if self.ni > #self.numbers then
|
|
self.ni = 1
|
|
end
|
|
end
|
|
end
|
|
|
|
return m
|