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