Информация Гайд Переливающийся текст (работает с renderFontDrawText)

kirieshki.

Новичок
Автор темы
19
11
Переливающийся текст, работает с renderFontDrawText
Так как темы такой не нашёл, делаю свою.
Пример:
Arizona-RP-2025-01-27-00-05-48-_online-video-cutter.com_.gif

Код:​
Lua:
function join_argb(a, r, g, b)
    local argb = b  -- b
    argb = bit.bor(argb, bit.lshift(g, 8))  -- g
    argb = bit.bor(argb, bit.lshift(r, 16)) -- r
    argb = bit.bor(argb, bit.lshift(a, 24)) -- a
    return argb
end

function string.insert(str1, str2, pos) -- функция вставки строки в строку по позиции
    return str1:sub(1,pos)..str2..str1:sub(pos+1)
end

function gradient_text(text, speed)
    local time = os.clock()
    local a = 255
    for i=string.len(RText) - 1, 0, -1 do
        local r = math.floor(math.sin((time * speed + i / 7)) * 127 + 128)
        local g = math.floor(math.sin((time * speed + i / 7)  + 2) * 127 + 128)
        local b = math.floor(math.sin((time * speed + i / 7)  + 3) * 127 + 128)
        local col = join_argb(a, r, g, b)
        local hex = ('%06X'):format(col)
        local hex = string.sub(hex, string.len(hex) - 5, string.len(hex))
        local hex = '{'..hex..'}'
        RText = string.insert(RText, hex, i)
    end
    return string.insert(text, RText, string.len(text))
end

Пример использования кода:
Lua:
-- лучше использовать в цикле while true в функции main()
local text = 'privet'
renderFontDrawText(font, gradient_text(text, 1), x, y, 0xFFFFFFFF)