I tried creating a simple one using just an ImageButton and some text:
Code: Select all
init python:
class MyButton(renpy.Displayable):
def __init__(self, idle_img, hover_img, ttext='', clicked=None, **kwargs):
super(MyButton, self).__init__(**kwargs)
self._imagebutton = ImageButton(idle_img, hover_img, clicked=clicked or NullAction(), **kwargs)
self._text = Text(ttext, False, xalign=0.5, yalign=1.0, **kwargs)
def render(self, width, height, st, at):
btn = self._imagebutton.render(width, height, st, at)
txt = self._text.render(width, height, st, at)
render = renpy.Render(128, 128)
render.blit(txt, (0, 128))
render.blit(btn, (0, 0))
renpy.redraw(self, 0) # Required to get ImageButton to change on hover?
return render
def visit(self):
return [self._imagebutton, self._text]
screen testimgbtn:
add MyButton("images/icon_idle.png", "images/icon_hover.png", 'Hello', clicked=Jump("sc002"), focus_mask=True)
label sc001:
show screen testimgbtn
label sc002:
"You jumped!"