Имеется GUI написанное на Lua и фреймворке
LOVE. В зависимости от ситуации, иногда шрифты сливаются с фоном (цвет у всех белый), поэтому я захотел добавить обводку черного цвета для всех текстов. Но как выяснилось, LUA и фреймворк LOVE не предусматривает такой возможности. Однако, в сети можно найти примеры реализации, когда текст сначала отрисовывается 8 раз черным цветом со смещениями в разных направлениях, и затем поверх рисуется белый текст. Проблема в том, что я совсем не знаком с этим языком, и не имею представления, как правильно это все реализовать.
Для инициализации вообще всего текста используется отдельный файл, в котором следующий код:
function CFont:Init(name, size)
self.size = size
self.name = name
self.font = lg.newFont( gPaths.fonts .. "/" .. self.name, self.size )
self.font:setLineHeight( gFontLineHeight )
end
Либо реализовать обводку для одного шрифта, на примере этого кода:
function CUIFg:InitBottomText( )
self.bottomText = ""
self.bottomTextSize = 0
self.bottomTextObjPosY = 0
local font = Common:GetFont(10, gUIFonts.default)
self.bottomTextObj = lg.newText(font)
self.bottomTextObjScale = 0
self.bottomTextObjHeight = self.bottomTextObj:getHeight()
self.bottomTextBoxWidth, self.bottomTextBoxHeight = 620, 60
self.bottomTextBoxX0, self.bottomTextBoxY0 = gViewport.width/2 - self.bottomTextBoxWidth/2, self.uiBottomPosY - self.bottomTextBoxHeight/2 - 35
self.bottomTextBoxCenterX, self.bottomTextBoxCenterY = self.bottomTextBoxX0 + self.bottomTextBoxWidth/2, self.uiBottomPosY + 80 - self.bottomTextBoxHeight/2
end
Возможно ли добавить в эти файлы пару строк кода, чтобы реализовать задумку? Да, знаю что это костыль, но все делается для личного пользования, поэтому все средства хороши.
В общем, нужно сделать обводку для всех текстов = 3px.