notsanequarium/main.lua

98 lines
2.5 KiB
Lua

require 'const'
require 'util'
constr = require 'constructors'
require 'lib.audio'
assets = require 'lib.assets'
ease = require 'lib.ease'
bench = require 'lib.benchmark'
tick = require 'lib.tick'
scenes = {
gameplay = require('scenes/gameplay/main')
}
local defaultscene = scenes.gameplay
scene = defaultscene
sprites = {}
sound_path = {}
music_path = {}
fonts = {}
cursors = {}
debug = false
function newAnimation(image, width, height)
local animation = {}
animation.spriteSheet = image;
animation.quads = {};
animation.width = width
animation.height = height
for y = 0, image:getHeight() - height, height do
for x = 0, image:getWidth() - width, width do
table.insert(animation.quads, love.graphics.newQuad(x, y, width, height, image:getDimensions()))
end
end
return animation
end
function love.load()
assets.clear()
assets.load('assets')
fonts.pix = love.graphics.newFont('assets/fonts/pix.ttf', 6)
fonts.continuum = love.graphics.newFont('assets/fonts/cont.ttf', 14)
fonts.default = love.graphics.newFont(12)
if scene.load then scene.load() end
cursors.default = love.mouse.newCursor('assets/sprites/cursor/pointer.png', sprites['cursor/pointer']:getWidth()/2, sprites['cursor/pointer']:getHeight()/2)
cursors.hover = love.mouse.newCursor('assets/sprites/cursor/hand.png', sprites['cursor/hand']:getWidth()/2, sprites['cursor/hand']:getHeight()/2)
cursors.drag = love.mouse.newCursor('assets/sprites/cursor/dragging.png', sprites['cursor/dragging']:getWidth()/2, sprites['cursor/dragging']:getHeight()/2)
love.mouse.setCursor(cursors.default)
end
frame = 0
function love.update(dt)
frame = frame + 1
bench.update()
tick.update(dt)
bench.startBenchmark('update')
if scene.update then scene.update(dt) end
bench.stopBenchmark('update')
end
function love.draw()
love.graphics.setFont(fonts.default)
love.graphics.setColor(1, 1, 1)
local sw, sh = love.graphics.getDimensions()
bench.startBenchmark('render')
if scene.draw then scene.draw() end
love.graphics.setColor(1, 1, 1, 1)
love.graphics.print('FPS: ' .. 1 / love.timer.getDelta(), 0, sh - 16)
if debug then bench.renderBenchmark() end
bench.stopBenchmark('render')
end
function love.mousepressed(x, y, b)
if scene.mousepressed then scene.mousepressed(x, y, b) end
end
function love.mousereleased(x, y, b)
if scene.mousereleased then scene.mousereleased(x, y, b) end
end
function love.keypressed(key)
if key == 'f3' then
debug = not debug
end
end