- 19
- 11
Переливающийся текст, работает с renderFontDrawText
Так как темы такой не нашёл, делаю свою.
Пример:
Код:
Так как темы такой не нашёл, делаю свою.
Пример:
Код:
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)