Цветовой акцент

Hideme Flow

Известный
Автор темы
573
199
Версия MoonLoader
.026-beta
Мне нужно сделать что-то по типу этого
1696665595939.png

только в луа
в инете я нашёл единственный способ, но он не такой, какой мне нужен
1696665564419.png

Lua:
local bit = require("bit32") -- Подключаем библиотеку bit32 для работы с битами
local function clamp(value, minVal, maxVal)
    return math.min(math.max(value, minVal), maxVal)
end
function createAccentColor(baseColor, accentValue)
    -- Проверка, что accentValue находится в допустимом диапазоне (например, от -255 до 255)
    accentValue = clamp(accentValue, -255, 255)

    -- Разбиваем базовый цвет на компоненты (красный, зеленый, синий, альфа)
    local r = bit.band(bit.rshift(baseColor, 24), 0xFF)
    local g = bit.band(bit.rshift(baseColor, 16), 0xFF)
    local b = bit.band(bit.rshift(baseColor, 8), 0xFF)
    local a = bit.band(baseColor, 0xFF)

    -- Увеличиваем интенсивность цветовых компонентов на accentValue
    r = clamp(r + accentValue, 0, 255)
    g = clamp(g + accentValue, 0, 255)
    b = clamp(b + accentValue, 0, 255)

    -- Собираем новый цвет из измененных компонентов
    local accentColor = bit.bor(bit.lshift(r, 24), bit.lshift(g, 16), bit.lshift(b, 8), a)

    return accentColor
end
imgui.OnFrame(
    function() return renderWindow[0] end,
    function(self)
        local sizeX, sizeY = getScreenResolution()
        imgui.SetNextWindowPos(imgui.ImVec2(sizeX / 2, sizeY / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
        imgui.SetNextWindowSize(imgui.ImVec2(1340, 300), imgui.Cond.FirstUseEver)
        imgui.Begin("Test", renderWindow)
            if nav.sel[0] == 1 then
                local baseColor = 0xFF7f7f7f
                imgui.PushStyleColor(imgui.Col.Button, getImVec4(baseColor))
                imgui.Button("0x"..string.format("%X", baseColor), imgui.ImVec2(125,25))
                imgui.PopStyleColor()
                for i = -10, 10 do
                    local colr = createAccentColor(baseColor, i*25.5)
                    imgui.PushStyleColor(imgui.Col.Button, getImVec4(colr))
                    imgui.Button(string.format("%X", colr)..'##q'..i, imgui.ImVec2(75,25))
                    imgui.PopStyleColor()
                    imgui.SameLine()
                end
            end
        imgui.End()
    end
)

он не такой, какой мне нужен
мне нужен чтоб менялся сам акцент цвета, а не сам цвет
 

chapo

чопа сребдс // @moujeek
Модератор
8,850
11,516
 

#SameLine

Активный
424
38
Мне нужно сделать что-то по типу этого
Посмотреть вложение 217075
только в луа
в инете я нашёл единственный способ, но он не такой, какой мне нужен
Посмотреть вложение 217074
Lua:
local bit = require("bit32") -- Подключаем библиотеку bit32 для работы с битами
local function clamp(value, minVal, maxVal)
    return math.min(math.max(value, minVal), maxVal)
end
function createAccentColor(baseColor, accentValue)
    -- Проверка, что accentValue находится в допустимом диапазоне (например, от -255 до 255)
    accentValue = clamp(accentValue, -255, 255)

    -- Разбиваем базовый цвет на компоненты (красный, зеленый, синий, альфа)
    local r = bit.band(bit.rshift(baseColor, 24), 0xFF)
    local g = bit.band(bit.rshift(baseColor, 16), 0xFF)
    local b = bit.band(bit.rshift(baseColor, 8), 0xFF)
    local a = bit.band(baseColor, 0xFF)

    -- Увеличиваем интенсивность цветовых компонентов на accentValue
    r = clamp(r + accentValue, 0, 255)
    g = clamp(g + accentValue, 0, 255)
    b = clamp(b + accentValue, 0, 255)

    -- Собираем новый цвет из измененных компонентов
    local accentColor = bit.bor(bit.lshift(r, 24), bit.lshift(g, 16), bit.lshift(b, 8), a)

    return accentColor
end
imgui.OnFrame(
    function() return renderWindow[0] end,
    function(self)
        local sizeX, sizeY = getScreenResolution()
        imgui.SetNextWindowPos(imgui.ImVec2(sizeX / 2, sizeY / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
        imgui.SetNextWindowSize(imgui.ImVec2(1340, 300), imgui.Cond.FirstUseEver)
        imgui.Begin("Test", renderWindow)
            if nav.sel[0] == 1 then
                local baseColor = 0xFF7f7f7f
                imgui.PushStyleColor(imgui.Col.Button, getImVec4(baseColor))
                imgui.Button("0x"..string.format("%X", baseColor), imgui.ImVec2(125,25))
                imgui.PopStyleColor()
                for i = -10, 10 do
                    local colr = createAccentColor(baseColor, i*25.5)
                    imgui.PushStyleColor(imgui.Col.Button, getImVec4(colr))
                    imgui.Button(string.format("%X", colr)..'##q'..i, imgui.ImVec2(75,25))
                    imgui.PopStyleColor()
                    imgui.SameLine()
                end
            end
        imgui.End()
    end
)


мне нужен чтоб менялся сам акцент цвета, а не сам цвет
красивый стиль, где брал исходник?
 

bulba$h

Активный
330
92
  • Нравится
Реакции: XRLM и #SameLine