找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 26|回复: 1

[求助] 如何在主菜单前面增加新的界面?

[复制链接]
发表于 前天 20:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
大佬们求助,我在主菜单前面加了个警告提示界面,但是为什么每次游戏内容结束或者中途想返回主菜单,那个提示界面就要弹出来再来一次啊?我想要每一次游戏只在我进入时出现警告界面,其他时候是直接返回主菜单。
[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"



发表于 昨天 09:30 | 显示全部楼层
如果只需要在进入游戏的时候出现写,在splashscreen标签里面”call screen 你的警告界面 “就行,因为splashscreen只会在游戏开始进入运行一次
(还有,主界面播放音乐在option的config.main_menu_music里面配置就行,以及我看了你警告界面的内容,看起来更像是游戏提示,直接写入label splashscreen就行,没必要专门写一个screen,而warning_screen这个screen也写的一言难尽)
回复 支持 抱歉

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|RenPy中文空间 ( 苏ICP备17067825号|苏公网安备 32092302000068号 )

GMT+8, 2025-9-21 04:51 , Processed in 0.059390 second(s), 24 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表