require 'love2d-fakecanvas/fakecanvas' local Window = {} local colors = { { 0, 0, 255, 255}, {0, 255, 0, 255}, {0, 255, 255, 255}, {255, 0, 0, 255}, {255, 0, 255, 255}, {255, 255, 0, 255} } local Polygons = {} local Keypressed = {} function love.load() love.graphics.setBackgroundColor(0, 0, 0) -- Inner window border table.insert(Polygons, { Type = "rectangle", DrawMode = "line", LineWidth = 0.005, Position = { x = 0.005, y = 0.005}, Dimension = {width = 0.99, height = 0.99}, Colors = {0, 0, 171, 255} }) -- Background for i = 0, 5 do table.insert(Polygons, { Type = "polygon", DrawMode = "fill", Position = { x1 = 0.01, y1 = 0.02+0.02*i, x2 = 0.02+0.02*i, y2 = 0.01, x3 = 0.03+0.02*i, y3 = 0.01, x4 = 0.01, y4 = 0.03+0.02*i}, Colors = {0, 0, 171, 255} }) table.insert(Polygons, { Type = "polygon", DrawMode = "fill", Position = { x1 = 0.99, y1 = 0.98-0.02*i, x2 = 0.98-0.02*i, y2 = 0.99, x3 = 0.97-0.02*i, y3 = 0.99, x4 = 0.99, y4 = 0.97-0.02*i}, Colors = {0, 0, 171, 255} }) end -- Left box table.insert(Polygons, { Type = "rectangle", DrawMode = "fill", Position = { x = 0.05, y = 0.05}, Dimension = {width = 0.35, height = 0.90}, Colors = {0, 0, 0, 255} }) table.insert(Polygons, { Type = "rectangle", DrawMode = "line", Position = { x = 0.05, y = 0.05}, Dimension = {width = 0.35, height = 0.90}, Colors = {0, 0, 171, 255} }) table.insert(Polygons, { Type = "line", Position = { x1 = 0.05, y1 = 0.1, x2 = 0.4, y2 = 0.1}, Colors = {0, 0, 171, 255} }) -- Left box buttons table.insert(Polygons, { Type = "rectangle", DrawMode = "line", Position = { x = 0.075, y = 0.875}, Dimension = {width = 0.125, height = 0.05}, Colors = {0, 0, 171, 255} }) table.insert(Polygons, { Type = "rectangle", DrawMode = "line", Position = { x = 0.25, y = 0.875}, Dimension = {width = 0.125, height = 0.05}, Colors = {0, 0, 171, 255} }) -- Left box content table.insert(Polygons, { Type = "line", LineWidth = 0.01, Position = { x1 = 0.375, y1 = 0.15, x2 = 0.375, y2 = 0.75}, Colors = {0, 0, 171, 255} }) -- Right top box table.insert(Polygons, { Type = "rectangle", LineWidth = 0.005, DrawMode = "line", Position = { x = 0.45, y = 0.05}, Dimension = {width = 0.50, height = 0.75}, Colors = {0, 0, 171, 255} }) table.insert(Polygons, { Type = "line", Position = { x1 = 0.45, y1 = 0.1, x2 = 0.95, y2 = 0.1}, Colors = {0, 0, 171, 255} }) -- Right top box content table.insert(Polygons, { Type = "line", LineWidth = 0.01, Position = { x1 = 0.375-0.005, y1 = 0.75, x2 = 0.52+5*0.075+0.005, y2 = 0.75}, Colors = {0, 0, 171, 255} }) -- Right bottom box table.insert(Polygons, { Type = "rectangle", LineWidth = 0.005, DrawMode = "fill", Position = { x = 0.45, y = 0.85}, Dimension = {width = 0.50, height = 0.10}, Colors = {0, 0, 0, 255} }) table.insert(Polygons, { Type = "rectangle", DrawMode = "line", Position = { x = 0.45, y = 0.85}, Dimension = {width = 0.50, height = 0.10}, Colors = {0, 0, 171, 255} }) -- Right bottom box buttons for i = 0, 5 do table.insert(Polygons, { Type = "rectangle", DrawMode = "fill", Position = { x = 0.50+i*0.075, y = 0.875}, Dimension = {width = 0.04, height = 0.04}, Colors = colors[i+1] }) table.insert(Polygons, { Type = "rectangle", DrawMode = "line", LineWidth = 0.01, Position = { x = 0.50+i*0.075, y = 0.875}, Dimension = {width = 0.04, height = 0.04}, Colors = {0, 0, 171, 255} }) table.insert(Polygons, { Type = "line", Position = { x1 = 0.52+i*0.075, y1 = 0.75, x2 = 0.52+i*0.075, y2 = 0.875}, Colors = {0, 0, 171, 255} }) if i < 5 then table.insert(Polygons, { Type = "line", Position = { x1 = 0.5+i*0.075+0.04, y1 = 0.895, x2 = 0.52+(i+1)*0.075, y2 = 0.895}, Colors = {0, 0, 171, 255} }) end end end local function drawPolygon(polygon) if polygon.Colors then love.graphics.setColor(unpack(polygon.Colors)) end if polygon.LineWidth then love.graphics.setLineWidth(polygon.LineWidth*(Window.width+Window.height)/2) end if polygon.Type == "rectangle" then love.graphics.rectangle(polygon.DrawMode, polygon.Position.x*Window.width, polygon.Position.y*Window.height, polygon.Dimension.width*Window.width, polygon.Dimension.height*Window.height) elseif polygon.Type == "polygon" then love.graphics.polygon(polygon.DrawMode, polygon.Position.x1*Window.width, polygon.Position.y1*Window.height, polygon.Position.x2*Window.width, polygon.Position.y2*Window.height, polygon.Position.x3*Window.width, polygon.Position.y3*Window.height, polygon.Position.x4*Window.width, polygon.Position.y4*Window.height) elseif polygon.Type == "line" then love.graphics.line(polygon.Position.x1*Window.width, polygon.Position.y1*Window.height, polygon.Position.x2*Window.width, polygon.Position.y2*Window.height) end end function love.mousepressed(x, y, b) x = x/Window.width y = y/Window.height if 0.875 < y and y < 0.915 then for i = 0,5 do if 0.50+i*0.075 < x and x < 0.50+i*0.075+0.04 then table.insert(Keypressed, i) end end end end function love.draw() Window.width, Window.height = love.window.getDimensions() for id, polygon in ipairs(Polygons) do drawPolygon(polygon) end love.graphics.setColor(255, 255, 255, 255) for id, num in ipairs(Keypressed) do love.graphics.print(num, (0.1+(id%5)*0.05)*Window.width, (0.6+((id-(id%5))/5)*0.05)*Window.height) end end