require "src.init" local lg = love.graphics function love.load() main_init() local scn = new_scene() event_bind(scn.on_update, "Body", body_sys) event_bind(scn.on_update, "Player", player_movement_sys) event_bind(scn.on_draw, "Body", draw_sys) set_scene(scn) new_player(100, 100) box1 = phys.Box.new(20, 20, 16, 16, { layers = {}, mask = {"hard"}, }) ground1 = phys.Box.new(5, 50, 64, 16, {}) ground2 = phys.Box.new(64-16, 50+16, 16, 64, {}) end function love.update(dt) local scn = get_current_scene() assert(scn, "No scene set.") fire_event(scn.on_update, dt) box1:update(0, 5, dt) flush_scene() end function love.draw(dt) lg.origin() lg.setCanvas(viewport) lg.clear() local scn = get_current_scene() assert(scn, "No scene set.") fire_event(scn.on_draw, dt) box1:draw() ground1:draw() ground2:draw() -- TODO: Take care of weird displays lg.setCanvas() local scr_width, scr_height = lg.getDimensions() WindowScale = min(scr_width/SCR_WIDTH, scr_height/SCR_HEIGHT) lg.draw( viewport, scr_width/2, scr_height/2, 0, WindowScale, WindowScale, SCR_WIDTH/2, SCR_HEIGHT/2) lg.print(tostring(love.timer.getFPS())) input_step() end