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
30
31
32
33
34
35
36
37
38
39
40
41
|
local M = {}
M.width, M.height = 1920, 1080
local dims = {love.graphics.getDimensions()}
function M.scale()
local sw, sh = unpack(dims)
local vw, vh = unpack(M)
local scalex, scaley = sw / vw, sh / vh
if scalex * vh < sh then
return scalex
else
return scaley
end
end
function M.offset()
local sw, sh = unpack(dims)
local vw, vh = unpack(M)
local sc = M.scale()
local x, y = sw / 2 - vw * sc / 2, sh / 2 - vh * sc / 2
return x, y
end
function M.pos(win_x, win_y)
local x, y = M.offset()
local sc = M.scale()
return (win_x - x) / sc, (win_y - y) / sc
end
function M.origin()
dims = {love.graphics.getDimensions()}
M[1], M[2] = M.width, M.height
love.graphics.origin()
love.graphics.translate(M.offset())
love.graphics.scale(M.scale())
end
return M
|