1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
|
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} }) -- 6 barres en diagonales en haut.
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} }) -- 6 barres en diagonales en bas.
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} }) -- Rectangle plein (noir) permettant de cacher les barres diagonales.
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} }) -- Rectangle de la partie gauche.
table.insert(InGame.Polygons, { Type = "line", Position = { x1 = 0.05, y1 = 0.1, x2 = 0.4, y2 = 0.1}, Colors = {0, 0, 171, 255} }) -- Ligne séparant le rectangle précédent en 2 partie.
-- 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} }) -- Rectangle du boutton "Reset".
table.insert(InGame.Polygons, { Type = "print", Text = "Reset", Position = { x = 0.075+0.035, y = 0.875+0.01 }, Colors = { 255, 255, 255, 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} }) -- Rectangle du boutton "Valider"
table.insert(InGame.Polygons, { Type = "print", Text = "Valider", Position = { x = 0.25+0.035, y = 0.875+0.01 }, Colors = { 255, 255, 255, 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+0.005}, Colors = {0, 0, 171, 255} }) -- Grande barre verticale à droite.
table.insert(InGame.Polygons, { Type = "line", LineWidth = 0.01, Position = { x1 = 0.06+0.0025, y1 = 0.15, x2 = 0.08, y2 = 0.15}, Colors = {0, 0, 171, 255} }) -- Petite barre horizontale à gauche du dernier grand carré du haut (plus petite que les autres sinon elle dépassait de la case).
for i = 0, 3 do
table.insert(InGame.Polygons, { Type = "rectangle", LineWidth = 0.01, DrawMode = "line", Position = { x = 0.08+i*0.075, y = 0.12}, Dimension = {width = 0.045, height = 0.05}, Colors = {0, 0, 171, 255} }) -- 4 grands carrés du haut.
table.insert(InGame.Polygons, { Type = "line", LineWidth = 0.01, Position = { x1 = 0.35-i*0.075, y1 = 0.15, x2 = 0.38-i*0.075-0.0025, y2 = 0.15}, Colors = {0, 0, 171, 255} }) -- 4 barres reliant les 4 grands carrés du haut.
end
for m = 0, 1 do
table.insert(InGame.Polygons, { Type = "line", LineWidth = 0.005, Position = { x1 = 0.065, y1 = 0.15+m*0.2-0.0025, x2 = 0.065, y2 = 0.25+0.0025+m*0.2}, Colors = {0, 0, 171, 255} }) -- 2 barres verticales reliant, le grand carré du haut avec le premier groupe, et le troisième groupe avec le cinquième.
table.insert(InGame.Polygons, { Type = "line", LineWidth = 0.005, Position = { x1 = 0.305, y1 = 0.25+m*0.2-0.0025, x2 = 0.305, y2 = 0.35+0.0025+m*0.2}, Colors = {0, 0, 171, 255} }) -- 2 barres verticales reliant, le deuxième groupe avec le troisième groupe, et le sixième groupe avec le dernier groupe.
table.insert(InGame.Polygons, { Type = "line", LineWidth = 0.005, Position = { x1 = 0.21+m*0.075, y1 = 0.525-0.001, x2 = 0.21+m*0.075, y2 = 0.575-0.001}, Colors = {0, 0, 171, 255} }) -- 2 barres verticales encadrant le dernier groupe.
table.insert(InGame.Polygons, { Type = "line", LineWidth = 0.005, Position = { x1 = 0.19+m*0.095, y1 = 0.55, x2 = 0.21+m*0.095, y2 = 0.55}, Colors = {0, 0, 171, 255} }) -- 2 barres horizontales encadrant le dernier groupe.
for j = 0, 2 do
table.insert(InGame.Polygons, { Type = "line", LineWidth = 0.01, Position = { x1 = 0.18, y1 = 0.25+j*0.1, x2 = 0.19, y2 = 0.25+j*0.1}, Colors = {0, 0, 171, 255} }) -- 3 petites barres épaisses entre les 6 premiers groupes.
for k = 0, 1 do
table.insert(InGame.Polygons, { Type = "line", LineWidth = 0.005, Position = { x1 = 0.085+k*0.075+m*0.125, y1 = 0.225+j*0.1-0.001, x2 = 0.085+k*0.075+m*0.125, y2 = 0.275+j*0.1-0.001}, Colors = {0, 0, 171, 255} }) -- 12 barres verticales encadrant les 6 premiers groupes.
table.insert(InGame.Polygons, { Type = "line", LineWidth = 0.005, Position = { x1 = 0.065+k*0.095+m*0.125, y1 = 0.25+j*0.1, x2 = 0.085+k*0.095+m*0.125, y2 = 0.25+j*0.1}, Colors = {0, 0, 171, 255} }) -- 12 barres horizontales encadrant les 6 premiers groupes.
table.insert(InGame.Polygons, { Type = "line", LineWidth = 0.0025, Position = { x1 = 0.21+j*0.0325, y1 = 0.525+k*0.0475, x2 = 0.22+j*0.0325, y2 = 0.525+k*0.0475}, Colors = {0, 0, 171, 255} }) -- 6 barres reliant les 4 petits carrés du dernier groupe entre eux.
for l = 0, 1 do
table.insert(InGame.Polygons, { Type = "rectangle", LineWidth = 0.0025, DrawMode = "line", Position = { x = 0.095+k*0.0325+m*0.125, y = 0.22+l*0.0325+j*0.1}, Dimension = {width = 0.0225, height = 0.025}, Colors = {0, 0, 171, 255} }) -- 6 premiers groupes de 4 petits carrés.
table.insert(InGame.Polygons, { Type = "rectangle", LineWidth = 0.0025, DrawMode = "line", Position = { x = 0.22+k*0.0325, y = 0.52+l*0.0325}, Dimension = {width = 0.0225, height = 0.025}, Colors = {0, 0, 171, 255} }) -- dernier groupe de 4 petits carré.
end
for n = 0, 2 do
table.insert(InGame.Polygons, { Type = "line", LineWidth = 0.0025, Position = { x1 = 0.085+m*0.125+n*0.0325, y1 = 0.225+j*0.1+k*0.0475, x2 = 0.095+m*0.125+n*0.0325, y2 = 0.225+j*0.1+k*0.0475}, Colors = {0, 0, 171, 255} }) -- 6 barres reliant les 4 petits carrés des 6 premiers groupes entre eux.
end
end
end
end
-- 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} }) -- Rectangle supérieur de la partie droite.
table.insert(InGame.Polygons, { Type = "line", Position = { x1 = 0.45, y1 = 0.1, x2 = 0.95, y2 = 0.1}, Colors = {0, 0, 171, 255} }) -- Ligne séparant le rectangle précédent en 2 partie.
-- 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
|