You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

RenPy多选菜单已选选项隐藏失效,新手求助

RenPy多选菜单隐藏已选选项问题修复

核心错误点

  1. 条件判断符号误用:你在菜单选项的条件里写了bottle_open = False,这是赋值操作,不是判断变量是否为False。RenPy里判断相等要用==,布尔值判断更简洁的写法是not bottle_open。
  2. 变量未初始化:所有标记选项的变量没有初始值,第一次判断时变量不存在,会导致逻辑异常。必须在游戏开始前把这些变量初始化为False。
  3. 冗余变量没必要:你额外定义了bottle_open1这类变量,直接复用第一次的标记变量即可,逻辑更统一。

修正后的完整代码示例

# 初始化所有物品标记变量,默认未选中
default bottle_open = False
default fidget = False
default pepper = False
default knife = False
default freud = False

label start:
    "开始选择物品吧:"
    # 循环菜单,玩家可多次选择直到选完
    menu item_selection:
        "汽水盖开瓶器" if not bottle_open:
            $ bottle_open = True
            jump choose_more
        "指尖魔方" if not fidget:
            $ fidget = True
            jump choose_more
        "镶钻胡椒喷雾罐" if not pepper:
            $ pepper = True
            jump choose_more
        "战术折刀(刀刃坏了)" if not knife:
            $ knife = True
            jump choose_more
        "你最爱的心理学家手办" if not freud:
            $ freud = True
            jump choose_more
        "我选完了":
            jump leave

label choose_more:
    "还要再选一个吗?"
    jump item_selection

label leave:
    "你选好了以下物品:"
    if bottle_open:
        "- 汽水盖开瓶器"
    if fidget:
        "- 指尖魔方"
    if pepper:
        "- 镶钻胡椒喷雾罐"
    if knife:
        "- 战术折刀(刀刃坏了)"
    if freud:
        "- 你最爱的心理学家手办"
    return

关键说明

  • 用default初始化变量是RenPy的标准方式,会在游戏启动时自动设置初始值,避免变量未定义的错误。
  • 菜单选项后的if not 变量名会自动隐藏已选中的选项,玩家无法重复选择。
  • 循环菜单的设计让玩家可以自由选择多个物品,直到主动结束选择流程。

内容的提问来源于stack exchange,提问作者adhd1357

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 19:13:09