Sekarang kita akan mencoba membuat text dengan efek gradasi. Kita perlu membuat sebuah class agar nantinya apabila kita membutuhkan teks dengan efek gradasi, kita tinggal create object-nya saja (Yup, Lua adalah pemrograman berorientasi object). Pada contoh dibawah, setelah kita menuliskan class GradientText, kita declare object text1, text2 dan text3 dengan parameter yang bisa langsung dimasukkan. Dan akhirnya, di function draw, kita tinggal panggil method draw dari class GradientText, maka teks dengan efek gradasi akan ditampilkan di layar iPad kita. Class ini mungkin bisa kita manfaatkan nantinya untuk membuat Splash Screen, yaitu title yang muncul sebelum kita bisa menggunakan aplikasi kita nantinya
GradientText = class()
function GradientText:init(x,y,txt,color1,color2,size)
self.x = x
self.y = y
self.txt = txt
self.col1 = color1
self.col2 = color2
self.size = size
end
function GradientText:draw()
fontSize(self.size)
local x=0
local diffR, diffG, diffB = (self.col2.r – self.col1.r),
(self.col2.g – self.col1.g),
(self.col2.b – self.col1.b)
local stepR, stepG, stepB = (diffR / #self.txt),
(diffG / #self.txt),
(diffB / #self.txt)
for i = 1, #self.txt do
fill(i * stepR + self.col1.r, i * stepG + self.col1.g, i * stepB + self.col1.b)
text(string.sub(self.txt, i, i), self.x + x, self.y)
x = x + textSize(string.sub(self.txt, i, i))
end
end
— gradient-text
function setup()
displayMode(FULLSCREEN)
textMode(CORNER)
text1 = GradientText(50, 200, “Hello world…”, color(0, 255, 0), color(0, 0, 255), 30)
text2 = GradientText(50, 300, “Have a Nice Day…”, color(023, 234, 456), color(34, 67, 89), 60)
text3 = GradientText(50, 450, “Percobaan Gradient Text…”, color(255, 255, 255), color(255, 0, 0), 120)
end
function draw()
background()
text1:draw()
text2:draw()
text3:draw()
end