full color customization added

This commit is contained in:
Mango 2025-09-06 14:50:25 -07:00
commit 64f3bd5616
3 changed files with 75 additions and 39 deletions

View file

@ -1,13 +1,15 @@
local Object = require "classic" local Object = require "classic"
local Button = Object:extend() local Button = Object:extend()
function Button:new(x, y, r, b, c) function Button:new(x, y, r, b, c1, c2, c3)
self.x = x self.x = x
self.y = y self.y = y
self.r = r self.r = r
self.b = b self.b = b
self.press = false self.press = false
self.c = c self.c1 = c1
self.c2 = c2
self.c3 = c3
end end
function Button:update(dt) function Button:update(dt)
@ -28,13 +30,12 @@ end
function Button:draw() function Button:draw()
if self.press then if self.press then
love.graphics.setColor(self.c) love.graphics.setColor(self.c1)
else else
love.graphics.setColor(75/255, 75/255, 75/255) love.graphics.setColor(self.c2)
end end
love.graphics.circle("fill", self.x + self.r, self.y + self.r, self.r+1) love.graphics.circle("fill", self.x + self.r, self.y + self.r, self.r+1)
love.graphics.setColor(1,1,1) love.graphics.setColor(self.c3)
love.graphics.circle("line", self.x + self.r, self.y+self.r, self.r+1) love.graphics.circle("line", self.x + self.r, self.y+self.r, self.r+1)
end end

View file

@ -9,33 +9,49 @@ function love.load()
MENU = true MENU = true
col1 = {255/255, 179/255, 102/255} col1 = {255/255, 179/255, 102/255}
col2 = {150/255, 109/255, 209/255} col2 = {150/255, 109/255, 209/255}
col3 = {75/255, 75/255, 75/255}
col4 = {1, 1, 1}
--movement buttons --movement buttons
movement = { movement = {
Button(37.5, 60, 43.5, "dpleft", col1), Button(37.5, 60, 43.5, "dpleft", col1, col3, col4),
Button(135, 60, 43.5, "dpdown", col1), Button(135, 60, 43.5, "dpdown", col1, col3, col4),
Button(220.5, 106.5, 43.5, "dpright", col1), Button(220.5, 106.5, 43.5, "dpright", col1, col3, col4),
Button(252, 270, 54, "dpup", col1), Button(252, 270, 54, "dpup", col1, col3, col4),
} }
--attack buttons --attack buttons
attack = { attack = {
Button(310.5, 64.5, 43.5, "x", col2), Button(310.5, 64.5, 43.5, "x", col2, col3, col4),
Button(398.5, 25.5, 43.5, "y", col2), Button(398.5, 25.5, 43.5, "y", col2, col3, col4),
Button(495, 33, 43.5, "rightshoulder", col2), Button(495, 33, 43.5, "rightshoulder", col2, col3, col4),
Button(592.5, 57, 43.5, "leftshoulder", col2), Button(592.5, 57, 43.5, "leftshoulder", col2, col3, col4),
Button(303, 165, 43.5, "a", col2), Button(303, 165, 43.5, "a", col2, col3, col4),
Button(394.5, 127.5, 43.5, "b", col2), Button(394.5, 127.5, 43.5, "b", col2, col3, col4),
Button(495, 132, 43.5, "triggerright", col2), Button(495, 132, 43.5, "triggerright", col2, col3, col4),
Button(592.5, 157.5, 43.5, "triggerleft", col2), Button(592.5, 157.5, 43.5, "triggerleft", col2, col3, col4),
} }
--color sliders --color sliders
slider = { slider = {
Slider(48, 192, 256, 6, 255), --movement
Slider(48, 154, 256, 6, 255),
Slider(48, 186, 256, 6, 255),
Slider(48, 218, 256, 6, 255),
--attack
Slider(48, 256, 256, 6, 255), Slider(48, 256, 256, 6, 255),
Slider(48, 312, 256, 6, 255), Slider(48, 288, 256, 6, 255),
Slider(416, 192, 256, 6, 255), Slider(48, 320, 256, 6, 255),
Slider(416, 256, 256, 6, 255), --background
Slider(416, 312, 256, 6, 255) Slider(418, 154, 256, 6, 255),
Slider(418, 186, 256, 6, 255),
Slider(418, 218, 256, 6, 255),
--outline
Slider(418, 256, 256, 6, 255),
Slider(418, 288, 256, 6, 255),
Slider(418, 320, 256, 6, 255),
--outline
Slider(232, 52, 256, 6, 255),
Slider(232, 84, 256, 6, 255),
Slider(232, 116, 256, 6, 255)
} }
end end
@ -50,11 +66,16 @@ function love.keypressed(key)
elseif key == "q" then elseif key == "q" then
love.event.quit() love.event.quit()
elseif key == "c" then elseif key == "c" then
love.graphics.setBackgroundColor(slider[13].level/255, slider[14].level/255, slider[15].level/255)
for i, m in ipairs(movement) do for i, m in ipairs(movement) do
m.c = {slider[1].level/255, slider[2].level/255, slider[3].level/255} m.c1 = {slider[1].level/255, slider[2].level/255, slider[3].level/255}
m.c2 = {slider[7].level/255, slider[8].level/255, slider[9].level/255}
m.c3 = {slider[10].level/255, slider[11].level/255, slider[12].level/255}
end end
for i, a in ipairs(attack) do for i, a in ipairs(attack) do
a.c = {slider[4].level/255, slider[5].level/255, slider[6].level/255} a.c1 = {slider[4].level/255, slider[5].level/255, slider[6].level/255}
a.c2 = {slider[7].level/255, slider[8].level/255, slider[9].level/255}
a.c3 = {slider[10].level/255, slider[11].level/255, slider[12].level/255}
end end
end end
end end
@ -93,23 +114,37 @@ function love.draw()
v:draw() v:draw()
end end
--rectangles showing the results of slider color --rectangles showing the results of slider color
love.graphics.rectangle("line", 328, 191, 16, 128) love.graphics.rectangle("line", 310, 154, 16, 70)
love.graphics.rectangle("line", 376, 191, 16, 128) love.graphics.rectangle("line", 310, 256, 16, 70)
love.graphics.rectangle("line", 680, 154, 16, 70)
love.graphics.rectangle("line", 680, 256, 16, 70)
love.graphics.rectangle("line", 494, 52, 16, 70)
love.graphics.setColor(slider[1].level/255, slider[2].level/255, slider[3].level/255) love.graphics.setColor(slider[1].level/255, slider[2].level/255, slider[3].level/255)
love.graphics.rectangle("fill", 328, 191, 16, 128) love.graphics.rectangle("fill", 310, 154, 16, 70)
love.graphics.setColor(slider[4].level/255, slider[5].level/255, slider[6].level/255) love.graphics.setColor(slider[4].level/255, slider[5].level/255, slider[6].level/255)
love.graphics.rectangle("fill", 376, 191, 16, 128) love.graphics.rectangle("fill", 310, 256, 16, 70)
love.graphics.setColor(slider[7].level/255, slider[8].level/255, slider[9].level/255)
love.graphics.rectangle("fill", 680, 154, 16, 70)
love.graphics.setColor(slider[10].level/255, slider[11].level/255, slider[12].level/255)
love.graphics.rectangle("fill", 680, 256, 16, 70)
love.graphics.setColor(slider[13].level/255, slider[14].level/255, slider[15].level/255)
love.graphics.rectangle("fill", 494, 52, 16, 70)
--text based instrunctions --text based instrunctions
love.graphics.setFont(font, 20) love.graphics.setFont(font, 20)
love.graphics.setColor(150/255, 150/255, 150/255) love.graphics.setColor(150/255, 150/255, 150/255)
love.graphics.print("hotkeys:", 0, 0) love.graphics.print("hotkeys:", 0, 0)
love.graphics.print("borderless = b", 0, 16) love.graphics.print("borderless = b", 0, 16)
love.graphics.print("set color = c", 0, 32) love.graphics.print("set color = c", 0, 32)
love.graphics.print("quit = q", 0, 48) love.graphics.print("quit = q", 0, 48)
love.graphics.print("direction color", 49, 136)
love.graphics.print("button color", 49, 238)
love.graphics.print("idle color", 418, 136)
love.graphics.print("outline color", 418, 238)
love.graphics.print("background color", 232, 34)
love.graphics.setColor(255/255, 179/255, 102/255) love.graphics.setColor(255/255, 179/255, 102/255)
love.graphics.printf("open/close this menu with spacebar", 0, 385, 720, "center") love.graphics.printf("open/close this menu with spacebar", 0, 385, 720, "center")
love.graphics.setColor(60/255, 60/255, 60/255) love.graphics.setColor(60/255, 60/255, 60/255)
love.graphics.printf("by mango", 0, 365, 720, "center") love.graphics.printf("by mango", 0, 365, 720, "center")
end end
end end

View file

@ -55,12 +55,12 @@ function Slider:update(dt)
end end
function Slider:draw() function Slider:draw()
love.graphics.setColor(1, 1, 1) love.graphics.setColor(200/255, 200/255, 200/255)
love.graphics.rectangle("line", self.x, self.y, self.w, self.h) love.graphics.rectangle("line", self.x, self.y, self.w, self.h)
love.graphics.setColor(237/255, 86/255, 83/255) love.graphics.setColor(237/255, 86/255, 83/255)
love.graphics.rectangle("fill", self.knobx-(self.knobw/2), self.knoby-(self.knobh/3), self.knobw, self.knobh) love.graphics.rectangle("fill", self.knobx-(self.knobw/2), self.knoby-(self.knobh/3), self.knobw, self.knobh)
love.graphics.setColor(1, 1, 1) love.graphics.setColor(1, 1, 1)
love.graphics.print(self.level, self.knobx-4, self.knoby-20) love.graphics.print(self.level, self.x-32, self.y-self.h/2)
end end
return Slider return Slider