学习空间/事实与表现:让重复、逆序和恢复都成立
← 回到有声课堂
第 04 讲 / 地图/交互

事实与表现:让重复、逆序和恢复都成立

用两项事实,维护一个可靠的小地图闭环

5:44 有声讲解8 页分镜原创图解与练习
原创图解 · 逐页有声讲解
第 1 页:不要让三个物件各自猜任务进度。左侧读事实,右侧检查两处反馈是否一致。
原创示意 · 左侧读事实,右侧检查两处反馈是否一致。放大图解 ↗整页讲义 ↗
合成中文讲解 · 默认暂停待播

逐句字幕将在播放时显示;本页完整讲稿始终可读。

01 / 本页核心

不要让三个物件各自猜任务进度

保存事实,再从事实生成一致表现。

  • 事实一:已获得编号证据
  • 事实二:已完成核验
  • 文字、灯光和清单是表现

观察提示左侧读事实,右侧检查两处反馈是否一致。

本页完整讲稿

同一个完成条件如果分别藏在登记台文字、出口颜色和动画次数里,很容易出现这里说完成、那里还说缺项。值守区练习只需要先区分两项事实:有没有获得编号,是否已经核验。登记台和出口都根据它们显示反馈,而不是各自保存一份相互无关的答案。图中最初两项都为否,玩家仍能探索,不能确认完成。暂时不增加任务编辑器,先用纸面事实卡把这套关系讲清楚。

完整视频 · 5:44 · 点击展开播放

完整视频为连续播放,不会在思考题处自动停下。看到“暂停思考”时,请使用视频暂停键。字幕可在原生播放器中开关;需要逐页讨论时切回“逐页听讲”。

从第 1 页开始。点击音频播放键听讲,也可以直接看图和读讲稿。

本播放器只记住本课页码,不保存答题或私人笔记,不会自动勾选课程完成。

听完这一讲,你要能做到

写出两项事实的反馈表,执行常规、逆序、离场、重复和重试五类路径。

本机中文合成讲解(Microsoft Huihui Desktop)。可读讲稿不依赖声音。看过视频不等于已经在 Godot 里验证;练习需在独立工程或纸面推演中按实际条件完成。

把课堂带走

视频可独立播放,字幕与逐字稿可以分开保存。下载不包含第三方演讲素材。

视频内另含可切换字幕轨。若浏览器直接打开文件,可使用播放器菜单或另存;文件播放和字幕显示取决于本地播放器支持。

完整图文讲义

可以直接阅读,不必播放或听完所有内容。

01

不要让三个物件各自猜任务进度

保存事实,再从事实生成一致表现。

左侧读事实,右侧检查两处反馈是否一致。

同一个完成条件如果分别藏在登记台文字、出口颜色和动画次数里,很容易出现这里说完成、那里还说缺项。值守区练习只需要先区分两项事实:有没有获得编号,是否已经核验。登记台和出口都根据它们显示反馈,而不是各自保存一份相互无关的答案。图中最初两项都为否,玩家仍能探索,不能确认完成。暂时不增加任务编辑器,先用纸面事实卡把这套关系讲清楚。

看图时留意:左侧读事实,右侧检查两处反馈是否一致。

02

先拿证据,是有效顺序,不是违规操作

教学顺序,不等于隐藏的程序前置条件。

只变化一项事实,观察哪次行动因此可执行。

现在编号已经获得,核验还没完成。登记台因此允许执行动作,出口仍说明缺项,这并不矛盾。即使玩家没先看出口清单,这个状态也应有效,因为编号本来就在那里。若程序要求先读清单再调查编号,相当于凭空增加了隐藏依赖。玩家提前发现线索后可能以为已经调查过,永远不会再点第二遍。把真正必要的条件写出来,就能分清哪些先后关系属于理解引导,哪些才属于规则。

看图时留意:只变化一项事实,观察哪次行动因此可执行。

03

成功后的第二次调查,不能撤销第一次成果

重复应给稳定反馈,不再次消耗或回退。

想象再按两次调查键:哪些值应保持不变?

核验完成后,有人会再按一次调查键,确认刚才发生了什么。这不是需要惩罚的操作。登记台可以回复已经登记,出口继续显示完成,但不应把核验值反转回未完成,也不应重复扣除物品。本练习没有消耗品,因此更容易看清原则。即使成功动画只播一次,离场回来后也要能从文字读出当前结果。检验重复行为,就是检查系统是否真的记住事实,而不是碰巧播放过一段演出。

看图时留意:想象再按两次调查键:哪些值应保持不变?

04

离场之后,远处对象仍要读到同一事实

对象重建,不意味着玩家的进度重来。

遮住下游再重新打开:它应读取什么,而不是等待什么?

图里上游操作改变了下游结果。实现时,下游房间可能直到玩家进入才创建;它不能只等一条早已错过的动画通知,而应在出现时读取当前事实。Godot 可以用已有的共享运行时数据承载这些信息,具体结构沿用项目约定即可。还要区分两个范围:普通换房间保留进度,不代表关闭程序后也会保留。后者需要明确的保存恢复设计,不能因为使用了自动加载节点就宣布已经有存档。

看图时留意:遮住下游再重新打开:它应读取什么,而不是等待什么?

05

地图记号是认知记录,不是任务开关

去过、找到证据和解决目标不能混成一项。

比较支路的新线索与原目标仍保留的问号。

看图中的问号:玩家从支路取得新线索,原目标仍未核验,所以未解记号不该自动变成完成。若允许玩家自己做记号,那更只是他的判断;即使误标完成,也不能让程序直接开门。对自动生成的任务记录,则应从真实事实推导结果。这两种记事方式用途不同,不必强行统一。值守区中,获得编号之后仍要回登记台行动,最后去出口确认,认知变化不能偷偷替代实际动作。

看图时留意:比较支路的新线索与原目标仍保留的问号。

06

暂停:局部恢复,该重置哪些东西?

恢复范围写清楚,避免一半复位、一半残留。

找出恢复的对象,以及应当保留的无关进展。

这页用一个独立推箱子模型说明恢复范围,并不要求给交接练习增加箱子。箱子堵住唯一通道时,局部重置应把它恢复到可解位置,同时确保角色没有留在碰撞里面。已经取得、与这道箱子题无关的证据,不该顺手全部清空。另一种重开整个练习则可以明确清空本轮事实,两者都能成立,关键是名字和结果一致。现在选择局部重置最符合玩家预期的行为。

看图时留意:找出恢复的对象,以及应当保留的无关进展。

暂停思考:按钮明确叫作“重置本处箱子”,哪种行为最合理?
  1. 箱子复位,同时随机取消一项已完成登记
  2. 箱子和安全站位恢复,保留无关证据事实
  3. 只重播箱子动画,不改变堵路的实际碰撞

参考判断:B。恢复应覆盖造成受困的真实对象和必要安全站位,不扩大到无关进展;表现变化不能代替真实状态恢复。

07

五条路径,检查五种不同的失败原因

作者通关一次,只覆盖了他习惯的一条顺序。

给五条路径分别写一个它要发现的问题。

把测试拆成五类,目的不是凑检查数量。常规路线检查基本闭环,逆序检查隐藏前置条件,离场检查事实是否被房间删除,重复检查是否意外回退,重试检查恢复边界和角色控制。值守区可以规定普通返回保留两项事实,重开练习清空它们,并回到安全起点。分别在登记前后重开,看看出口、登记台和可操作状态是否一致。这些只是本轮范围,不是所有未来状态的穷尽证明。

看图时留意:给五条路径分别写一个它要发现的问题。

08

独立练习:把“应该”变成可核对的结果

断言、实际操作和证据,三者分开记录。

选一行亲自执行,核对预期与实际是否相同。

写一张表,每行包含给定事实、操作和预期结果。例如编号已取得但尚未核验,离场再回来后,登记仍应可执行;核验已完成,重复调查后,出口仍应显示完成。再补上重开前后的安全落点和控制恢复。逐行实际执行,把结果与截图或日志位置记在旁边。还没进入引擎时可以做纸面推演,但应明确标记,不把写出预期当作运行通过。最后保留一个失败案例和修订后的复测结果。

看图时留意:选一行亲自执行,核对预期与实际是否相同。

这一讲参考了什么

概念依据与本课原创练习分开看。来源支持范围写在每一项后面,不代表讲解被原作者背书。

Godot stable · Singletons (Autoload) ↗

核对正文:Autoload 可在换场景时保留共享运行时信息,不自动等于退出程序后的磁盘存档。事实表与交接规则是原创设计,不要求额外建设全局框架。

核查日期:2026-09-19
Godot stable · Saving games ↗

核对正文关于先确定持久对象与数据、再保存和恢复的职责。本课只定义练习恢复边界,不复制文档存档实现,也不声称网页练习是引擎存档。

核查日期:2026-09-19
带着观看问题继续读原作者资料 →

输入一个你想弄明白的问题。

按 Esc 关闭 · 标题、关键词和正文一起搜索