local window = require('window') -- prototype of room -- - background -- - objects -- - edges local room = { background = love.graphics.newImage("res/defaultbg.png"), edges = {}, objects = {}, } function edge_position(e) local wd = screen.width - e.width local hd = screen.height - e.height local t = { ['left'] = { 0, hd/2 }, ['right'] = { wd, hd/2 }, ['up'] = { wd/2, 0 }, ['down'] = { wd/2, hd }, } local p = t[e.dir] return p[1], p[2] end local mt = { __index = room } function room:new() local m = {} setmetatable(m, mt) return m end room.mousepressed = window.propagate{'edges', 'objects'} function room:draw() love.graphics.draw(self.background, 0, 0) for i, v in ipairs(self.objects) do v:draw() end for i, v in ipairs(self.edges) do local x, y = edge_position(v) love.graphics.draw(edge_arrow[v.dir], x, y) end end return room