時間経過で選択肢をフェードインアウトします。
まずscreen.rpyのchoiceスクリーンを以下のように変更します。
init python:
import time
screen choice(items, start_time=0):
style_prefix "choice"
$current_time = time.time()
# 0.1秒毎に画面を更新する
timer 0.1 action renpy.restart_interaction repeat True
vbox:
for i in items:
if "show_timer" in i.kwargs:
if i.kwargs["show_timer"] < current_time - start_time:
$action = i.action
else:
$action = None
textbutton i.caption action action at show_transition(i.kwargs["show_timer"], 1.)
elif "hide_timer" in i.kwargs:
if i.kwargs["hide_timer"] > current_time - start_time:
$action = i.action
else:
$action = None
textbutton i.caption action action at hide_transition(i.kwargs["hide_timer"], 1.)
else:
textbutton i.caption action i.action
#フェードイン用transform
transform show_transition(timer, fade_time):
alpha 0.
timer
linear fade_time alpha 1.0
#フェードイン用transform
transform hide_transition(timer):
alpha 1.
timer
linear fade_time alpha 0.0
その上で次のように使用します。3秒後にフェードインで選択肢を追加表示させたいときはshow_timer引数に3を、フェードアウトさせたいときはhide_timer引数を使用します。
"hogehoge"
menu (start_time=time.time()):
"hoge1":
jump hoge_label
"hoge2" (show_timer=3.0):
jump hoge_label
"hogehoge"
label hoge_label:
"hogehoge"
フェードインアウトせず、単に選択肢を変更するだけなら以下のようにタイマーのみのscreenを定義して、選択肢を増減したラベルにジャンプさせればよいです。
"hogehoge"
show screen timer(3, Jump("hoge_label"))
menu:
"hoge1":
jump hoge_label
"hoge2":
jump hoge_label
"hogehoge"
label hoge_label:
"hogehoge"
init:
screen timer(time, action):
layer "master" #masterレイヤーでないとUIを消しているときにタイマーが動かない
timer time action action