Ren'Py memo

Ren'Pyの個人的なメモ。

以前開いたタブを記憶する

最初のテンプレートにあるヘルプ画面はタブ形式になっています。
はじめてのコピペUI改造として向いているいい画面です。

しかし使われている変数が普通の変数のため、
ここに後日談の部屋や回想部屋を入れる場合、
見終わると毎回最初のタブに戻されてしまいます。

今回はその変数をpersistent変数に変更して
以前開いたタブを記憶する仕組みにします。

1.persistent変数を作る

default persistent.help_navi = "sousa"

最初に表示したい画面の文字を設定します。
わかりやすくするためにscreen名に似た文字を設定していますが、
後述の内容に沿っていれば特に問題はありません。

2. screen helpのコードを改造する

screen help():

    use game_menu(_("Help"), scroll="viewport"):

        hbox:
            if persistent.help_navi == "sousa":
                use sousa_help
            elif persistent.help_navi == "readme":
                use readme_help
            elif persistent.help_navi == "log":
                use log_help
            elif persistent.help_navi == "credit":
                use credit_help
            elif persistent.help_navi == "warn":
                use warn_help

    hbox:
        xalign 0.5
        yalign 1.0
        hbox:
            style_prefix "navigation2"
            spacing 5

            textbutton _("はじめに"):
                action SetVariable("persistent.help_navi", "readme")

            textbutton _("操作方法"):
                action SetVariable("persistent.help_navi", "sousa")

            textbutton _("クレジット"):
                action SetVariable("persistent.help_navi", "credit")

            textbutton _("注意免責事項"):
                action SetVariable("persistent.help_navi", "warn")

            textbutton _("更新履歴"):
                action SetVariable("persistent.help_navi", "log")

screen sousa_help():
(省略)

deviceの変数を削除し、SetScreenVariableからSetVariableにしています。

テキストボタン部分のレイアウトは自作ゲーム用に変更しているので、
そのまま使うとおかしくなるかもしれません。適宜変更おねがいします……