Ren'Py memo

Ren'Pyの個人的なメモ

背景のあるテキストボタンを作る

記述例

textbutton _("全問正解\nルートへ\nスキップ"):
    action Jump('quiz_skip_win')
    background "gui/map_idle.png"
    style_prefix "quiz_before"


backgroundを指定するとボタンの後ろに画像が表示されます。

上記の書き方でtextの位置や色を指定したい時は、
text_を接頭辞につける必要があります。(または下記のstyleで指定)

style quiz_before_button is default:
    idle_background "gui/map_idle.png"
    hover_background "gui/map_hover.png"
    insensitive_background "gui/map_insensitive.png"
    activate_sound "audio/se_akch.ogg"
    xsize 175
    ysize 50

style quiz_before_button_text is default:
    xalign 0.5
    yalign 0.5
    size 37
    line_spacing 9
    color gui.accent_color
    text_align 0.5
    bold True

ボタンのxsizeとysizeは画像の大きさにキッチリ揃えないと、
クリックできる範囲がおかしくなるみたいです。

上記はbackgroundの画像名をいちいち指定していますが、
普通の表示の時:idle
マウスがホバーした時:hover
ボタンが押せない時:insentive
の名前を上記のように画像名につけておくと、
background "gui/map_[prefix_].png"
と書くだけで[prefix_]の部分が置き換えられ、上記の羅列と同じ状態になります。
スタイルのプロパティー — Ren'Py Documentation

余談

単色の長方形画像、透明の画像は用意しなくてもRen'Py内で作ることができます。

image end_idle = Solid("#b9bfa2", xsize=300, ysize=197)
image end_hover = Null()

xsizeとysizeでサイズも指定できます。
Nullは透明のボックスを表示できます(こちらもサイズ指定も可能です)
Displayable — Ren'Py Documentation

上記のbackgroundで指定したい時はimageの名前をそのまま、
background "end_idle"のように書けば表示されます。