跳到正文

选择与故事图

让每个可见选项都有明确、可恢复的叙事目标。

选择不会凭空创建节点

QuaScript- 去海边 -> seaside- 留在书店 -> bookshop

这段语法生成选择与跳转请求。你仍然需要在故事图或项目跳转处理器中定义目的地。模板的 settings 与 continue 是宿主显式处理的目标,不是语言内置关键字。

目标类型

写法目标
seaside故事节点
#letter脚本标签
scene:station#arrival场景与入口
script:chapter-two#opening脚本模块与节点
package:chapter-two#openingRuntime QPK 中的节点

目标注册与跳转的 TypeScript 接口见 故事图参考。选择生成后,引擎等待 user/choice_select,记录 ctx.choice 并执行跳转,渲染器只展示选项和发送选择意图。

条件与不可用选项

QuaScript- 打开房门 -> room if scope.hasKey

这要求 hasKey 存在于剧本的 Scope。需要显示禁用原因、稳定选项 ID 或缩略图时,用 @Choice(text, target, options)。不要把 @Choice 与背景等非选择装饰器混在同一个块内。

章节选择与已读状态

章节列表来自带 chapterSelect 元数据的节点和引擎拥有的解锁记录。不要另存一份由 UI 决定的章节解锁状态。开发时至少验证:首次阅读、完成一章、重新载入、跳转章首,以及未解锁入口是否仍被保护。

运行期扩展章节

新增 QPK 可以继续同一场景、路线或时间线。节点、检查点、存档和回看条目必须保留 contentPackageId 与所需运行期包信息,不能仅凭场景 ID 判断依赖已经齐全。

下一步阅读 Runtime QPK 与 故事图参考。

在 GitHub 查看 / 改进本页来源