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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
-- "NOTNAUTS"
-- WHOLE CODE HAS FLAG OF "need a cleanup"
-- TODO: Any lua source file in root directory that is not `main` (this file), `conf` should be moved to a proper directory. Its name should be changed to show what it contains.
-- Pretend you didn't see this
-- This is work for scene manager
-- TODO: Create SceneManager or similar class.
Scene = nil
function changeScene(scene)
if Scene ~= nil then
Scene:delete()
end
Scene = scene
end
-- Should be moved to scene/camera
-- TODO: move following functions to `Camera`.
function getScale()
return math.max(1, math.floor(math.max(love.graphics.getWidth() / 320, love.graphics.getHeight() / 180)))
end
function getRealScale()
return math.max(1, math.max(love.graphics.getWidth() / 320, love.graphics.getHeight() / 180))
end
-- Require
require "not.World"
require "camera"
require "not.Menu"
require "controller"
require "settings"
-- Temporary debug
debug = false
-- LÖVE2D callbacks
function love.load()
-- Graphics
love.graphics.setBackgroundColor(90, 90, 90)
love.graphics.setDefaultFilter("nearest", "nearest")
-- Font
Font = love.graphics.newImageFont("assets/font-normal.png", " 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz.,:;-_/\\!@#$%^&*?=+~`|'\"()[]{}<>", -1)
Bold = love.graphics.newImageFont("assets/font-big.png", " 0123456789AEFILNORSTUW", -2)
Font:setLineHeight(9/16)
love.graphics.setFont(Font)
-- Modules
Controller.load()
Settings.load()
-- Scene
Scene = Menu:new()
end
function love.update(dt)
Scene:update(dt)
end
function love.draw()
Scene:draw()
if debug then
local scale = getScale()
love.graphics.setFont(Font)
love.graphics.setColor(255, 0, 0, 255)
love.graphics.print("Debug ON", 10, 10, 0, scale, scale)
love.graphics.setColor(255, 255, 255, 255)
love.graphics.print("Current FPS: "..tostring(love.timer.getFPS()), 10, 10+9*scale, 0, scale, scale)
end
end
function love.quit()
Settings.save()
end
-- Pass input to Controller
function love.gamepadaxis(joystick, axis, value) Controller.gamepadaxis(joystick, axis, value) end
function love.gamepadpressed(joystick, key) Controller.gamepadpressed(joystick, key) end
function love.gamepadreleased(joystick, key) Controller.gamepadreleased(joystick, key) end
function love.keypressed(key) Controller.keypressed(key) end
function love.keyreleased(key) Controller.keyreleased(key) end
-- Controller callbacks
function Controller.controlpressed(set, action, key)
-- pass to current Scene
Scene:controlpressed(set, action, key)
-- globals
if key == "escape" then
love.event.quit()
end
if key == "f5" then
debug = not debug
end
end
function Controller.controlreleased(set, action, key)
-- pass to current Scene
Scene:controlreleased(set, action, key)
end
|