From 7ae446b661c47b41ed38d7f88b8f54416575e47f Mon Sep 17 00:00:00 2001 From: piernov Date: Wed, 16 Apr 2014 22:59:56 +0200 Subject: Split file + Working Solo mode : Add hints + Disallow multiple identical colors in same line + Correctly randomize answer --- GUI/Common.lua | 30 ++++++++++++++++ GUI/InGame.lua | 106 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ GUI/Menu.lua | 8 +++++ 3 files changed, 144 insertions(+) create mode 100644 GUI/Common.lua create mode 100644 GUI/InGame.lua create mode 100644 GUI/Menu.lua (limited to 'GUI') diff --git a/GUI/Common.lua b/GUI/Common.lua new file mode 100644 index 0000000..5b62ed1 --- /dev/null +++ b/GUI/Common.lua @@ -0,0 +1,30 @@ +local GUI = {} + +function GUI.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) + elseif polygon.Type == "print" then + love.graphics.print(polygon.Text, polygon.Position.x*Window.width, polygon.Position.y*Window.height) + end +end + +return GUI diff --git a/GUI/InGame.lua b/GUI/InGame.lua new file mode 100644 index 0000000..1908894 --- /dev/null +++ b/GUI/InGame.lua @@ -0,0 +1,106 @@ +local InGame = {} + +InGame.Polygons = {} + +InGame.Colors = { {255, 0, 0, 255}, {255, 128, 0, 255}, {255, 255, 0, 255}, {0, 255, 0, 255}, {128, 128, 128, 255}, {255, 255, 255, 255} } + +function InGame.drawPolygon(polygon) + if polygon.Colors then + love.graphics.setColor(unpack(polygon.Colors)) + end + + if polygon.LineWidth then + love.graphics.setLineWidth(polygon.LineWidth*(Screen.width+Screen.height)/2) + end + + if polygon.Type == "rectangle" then + love.graphics.rectangle(polygon.DrawMode, polygon.Position.x*Screen.width, polygon.Position.y*Screen.height, + polygon.Dimension.width*Screen.width, polygon.Dimension.height*Screen.height) + + elseif polygon.Type == "polygon" then + love.graphics.polygon(polygon.DrawMode, polygon.Position.x1*Screen.width, polygon.Position.y1*Screen.height, + polygon.Position.x2*Screen.width, polygon.Position.y2*Screen.height, + polygon.Position.x3*Screen.width, polygon.Position.y3*Screen.height, + polygon.Position.x4*Screen.width, polygon.Position.y4*Screen.height) + + elseif polygon.Type == "line" then + love.graphics.line(polygon.Position.x1*Screen.width, polygon.Position.y1*Screen.height, + polygon.Position.x2*Screen.width, polygon.Position.y2*Screen.height) + elseif polygon.Type == "print" then + love.graphics.print(polygon.Text, polygon.Position.x*Screen.width, polygon.Position.y*Screen.height) + end +end + +function InGame.loadInterface() + love.graphics.setBackgroundColor(0, 0, 0) + + -- Inner Window border + table.insert(InGame.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(InGame.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(InGame.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(InGame.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(InGame.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(InGame.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(InGame.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(InGame.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(InGame.Polygons, { Type = "line", LineWidth = 0.01, Position = { x1 = 0.375, y1 = 0.15-0.005, x2 = 0.375, y2 = 0.75}, Colors = {0, 0, 171, 255} }) + + -- Right top box + table.insert(InGame.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(InGame.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(InGame.Polygons, { Type = "line", LineWidth = 0.01, Position = { x1 = 0.375-0.0025, y1 = 0.75, x2 = 0.52+5*0.075+0.0025, y2 = 0.75}, Colors = {0, 0, 171, 255} }) + table.insert(InGame.Polygons, { Type = "line", LineWidth = 0.01, Position = { x1 = 0.475, y1 = 0.75, x2 = 0.475, y2 = 0.15-0.0025}, Colors = {0, 0, 171, 255} }) + table.insert(InGame.Polygons, { Type = "line", LineWidth = 0.01, Position = { x1 = 0.9, y1 = 0.15-0.0025, x2 = 0.9, y2 = 0.7}, Colors = {0, 0, 171, 255} }) + table.insert(InGame.Polygons, { Type = "line", LineWidth = 0.03, Position = { x1 = 0.795, y1 = 0.7-0.01, x2 = 0.9+0.005, y2 = 0.7-0.01}, Colors = {0, 0, 171, 255} }) + table.insert(InGame.Polygons, { Type = "rectangle", LineWidth = 0.01, DrawMode = "line", Position = { x = 0.52, y = 0.66}, Dimension = {width = 0.275, height = 0.05}, Colors = {0, 0, 171, 255} }) + + for j = 0, 6 do + table.insert(InGame.Polygons, { Type = "line", LineWidth = 0.005, Position = { x1 = 0.77, y1 = 0.15+j*0.075, x2 = 0.785, y2 = 0.15+j*0.075}, Colors = {0, 0, 171, 255} }) + table.insert(InGame.Polygons, { Type = "line", LineWidth = 0.005, Position = { x1 = 0.785, y1 = 0.1275+j*0.075-0.0005, x2 = 0.785, y2 = 0.1725+j*0.075+0.0005}, Colors = {0, 0, 171, 255} }) + table.insert(InGame.Polygons, { Type = "line", LineWidth = 0.005, Position = { x1 = 0.86, y1 = 0.1275+j*0.075, x2 = 0.86, y2 = 0.1725+j*0.075}, Colors = {0, 0, 171, 255} }) + table.insert(InGame.Polygons, { Type = "line", LineWidth = 0.005, Position = { x1 = 0.86, y1 = 0.15+j*0.075, x2 = 0.9, y2 = 0.15+j*0.075}, Colors = {0, 0, 171, 255} }) + + for i = 0, 3 do + table.insert(InGame.Polygons, { Type = "rectangle", LineWidth = 0.01, DrawMode = "line", Position = { x = 0.497+i*0.075, y = 0.12+j*0.075}, Dimension = {width = 0.045, height = 0.05}, Colors = {0, 0, 171, 255} }) + table.insert(InGame.Polygons, { Type = "line", LineWidth = 0.01, Position = { x1 = 0.471+i*0.075, y1 = 0.15+j*0.075, x2 = 0.497+i*0.075, y2 = 0.15+j*0.075}, Colors = {0, 0, 171, 255} }) + end + + for k = 0, 1 do + for l = 0, 1 do + table.insert(InGame.Polygons, { Type = "rectangle", LineWidth = 0.0025, DrawMode = "line", Position = { x = 0.795+k*0.0325, y = 0.12+l*0.0325+j*0.075}, Dimension = {width = 0.0225, height = 0.025}, Colors = {0, 0, 171, 255} }) + end + + for m = 0, 2 do + table.insert(InGame.Polygons, { Type = "line", LineWidth = 0.0025, Position = { x1 = 0.785+m*0.0325, y1 = 0.1275+k*0.045+j*0.075, x2 = 0.795+m*0.0325, y2 = 0.1275+k*0.045+j*0.075}, Colors = {0, 0, 171, 255} }) + end + end + end + + -- Right bottom box + table.insert(InGame.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(InGame.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(InGame.Polygons, { Type = "rectangle", DrawMode = "fill", Position = { x = 0.50+i*0.075, y = 0.875}, Dimension = {width = 0.04, height = 0.04}, Colors = InGame.Colors[i+1] }) + table.insert(InGame.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(InGame.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(InGame.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 + +return InGame diff --git a/GUI/Menu.lua b/GUI/Menu.lua new file mode 100644 index 0000000..29f3386 --- /dev/null +++ b/GUI/Menu.lua @@ -0,0 +1,8 @@ +return { + Buttons = { + "Solo", + "Multiplayer", + "Options", + "About" + } +} -- cgit v1.2.3-70-g09d2