马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
大佬们求助,我在主菜单前面加了个警告提示界面,但是为什么每次游戏内容结束或者中途想返回主菜单,那个提示界面就要弹出来再来一次啊?我想要每一次游戏只在我进入时出现警告界面,其他时候是直接返回主菜单。[RenPy] 纯文本查看 复制代码 default warning_shown_this_session = False
default main_menu_idle_time = 0.0
default show_main_menu_animation = False
default animation_finished = False
default warning_music_played_this_session = False
screen main_menu():
tag menu
zorder 100
# 决定是否显示警告屏幕
if not warning_shown_this_session:
use warning_screen
else:
# 添加这行代码 - 确保主界面音乐在播放
on "show" action If(not renpy.music.is_playing(channel='music'), true=Play("music", "audio/主界面.wav", loop=True, fadein=1.0))
# 主界面背景
if show_main_menu_animation:
if animation_finished:
# 动画完成后显示最后一帧
add "videos/IMG_0978.PNG":
xsize config.screen_width
ysize config.screen_height
else:
# 播放动画序列
add At("videos/IMG_0964.PNG", png_animation):
xsize config.screen_width
ysize config.screen_height
else:
add gui.main_menu_background:
xsize config.screen_width
ysize config.screen_height
at transform:
alpha 0.0
linear 3.0 alpha 1.0
# 警告屏幕
screen warning_screen():
tag warning # 标记屏幕,便于精准控制
zorder 2000 # 层级设为最高,确保覆盖所有界面(包括主菜单)
modal True # 模态锁定:显示时禁止操作其他屏幕(防止误触主菜单按钮)
default warning_music_played = False # 避免重复播放音乐
# 1. 全屏背景(确保覆盖整个屏幕)
add "gui/IMG_0963.PNG":
xpos 0
ypos 0
xsize config.screen_width # 适配屏幕宽度
ysize config.screen_height # 适配屏幕高度
at transform:
alpha 0.0
linear 1.0 alpha 1.0 # 1秒渐入,确保可见
# 2. 第一段警告文本(渐入→停留→渐出)
text "本作品纯属虚构。\n与现实中任何人物、事件和组织无关,请勿代入现实。":
font "fonts/JinNianYeYaoJiaYouYa-2.ttf"
size 26
color "#ffffff"
align (0.5, 0.5) # 屏幕中心对齐
text_align 0.5 # 文本内部居中
at transform:
alpha 0.0
linear 2.0 alpha 1.0 # 2秒渐入
pause 4.0 # 停留4秒(共显示6秒)
linear 1.5 alpha 0.0 # 1.5秒渐出
# 3. 第二段警告文本(延迟7.5秒后显示,与第一段衔接)
text "含有微恐元素,胆小慎入。\n打开音效体验更佳。":
font "fonts/JinNianYeYaoJiaYouYa-2.ttf"
size 26
color "#ffffff"
align (0.5, 0.5)
text_align 0.5
at transform:
alpha 0.0
pause 7.5 # 等第一段完全消失(6秒)+ 1.5秒间隔
linear 2.0 alpha 1.0 # 2秒渐入
pause 4.0 # 停留4秒(共显示6秒)
linear 1.5 alpha 0.0 # 1.5秒渐出
# 警告屏音乐:仅在显示时播放(与主界面音乐同文件,确保无缝衔接)
on "show" action If(
# 判断条件:音乐未播放过 + 当前没有音乐在播放
not warning_music_played and not renpy.music.is_playing(channel='music'),
true=[
Play("music", "audio/主界面.wav", loop=True, fadein=3.0), # 播放警告屏音乐
SetScreenVariable("warning_music_played", True) # 标记为已播放,避免重复
],
false=NullAction() # 条件不满足时不执行任何操作
)
timer 15.0 action [
Hide("warning_screen"),
SetVariable('warning_shown_this_session', True)
]
textbutton "跳过" action [
Hide("warning_screen"),
SetVariable('warning_shown_this_session', True),
If(not renpy.music.is_playing(channel='music'),
true=Play("music", "audio/主界面.wav", loop=True, fadein=1.0))
]:
xalign 0.95
yalign 0.05
text_color "#FFF"
text_hover_color "#F00"
|