I made this button class after seeing @Brucewe project, wanted to personalize it and also make it simpler to make the button call a function (atleast I find it simple this way). So here’s the code also added an example but what you need is only the Buttons tab.
--# Buttons
Buttons = class()
function Buttons:init(x,y,txt,funct,radius)
self.x = x
self.y = y
self.txt = txt
self.funct = funct
self.radius = radius
end
function Buttons:draw()
fill(140, 50, 238, 255)
fontSize(30)
font("AmericanTypewriter-Bold")
text(self.txt,self.x,self.y)
w = textSize(self.txt)
if self.radius == nil then
self.radius = w + 20
end
pushStyle()
noFill()
strokeWidth(5)
stroke(0, 114, 255, 198)
ellipse(self.x,self.y,self.radius)
end
function Buttons:touched(touch)
tx = touch.x
ty = touch.y
if touch.state == BEGAN then
if tx<=self.x + self.radius/2 and tx>=self.x - self.radius/2 and
ty>=self.y - self.radius/2 and ty<=self.y + self.radius/2 then
self.funct()
end
end
end
--# Functions
--the functions that the button will call when pressed
function Test()
print("button works")
end
function ChangePosition()
print("position changed")
sound(SOUND_HIT, 19021)
if x == WIDTH/2 then
x = WIDTH/2 + 200
else
x = WIDTH/2
end
end
--# Main
function setup()
x = WIDTH/2
b2 = Buttons(WIDTH/2 - 200,HEIGHT/2,"test",ChangePosition) --radius is set on its own
end
function draw()
background(0, 0, 0, 255)
b1 = Buttons(x,HEIGHT/2,"test",Test,100) --radius is user defined
b1:draw()
b2:draw()
end
function touched(touch)
b1:touched(touch)
b2:touched(touch)
end