Link_链接
在 SugarCube 中,链接标记是构建交互体验的核心。一个完整的链接标记由必需的目标(Link),以及可选的显示文本(Text)和变量设置器(Setter)组成。
核心组件拆解
- 目标 (Link):链接的终点。可以是片段(Passage)标题,也可以是外部 URL。它支持 TwineScript 表达式,并在链接首次加载时求值。
- 文本 (Text):玩家看到的点击文字。支持纯文本或 TwineScript 表达式。
- 设置器 (Setter):点击链接时执行的操作。仅适用于片段链接,语法与
<<set>>宏一致。多个表达式需用分号;分隔,例如:$a to 5; $b to true。
分隔符的艺术
SugarCube 非常灵活,支持多种方式来连接你的文本与目标:
- 管道符:
[[文本|目标]](最常用)。 - 右箭头:
[[文本->目标]](箭头指向目标)。 - 左箭头:
[[目标<-文本]](箭头依然指向目标)。
Twine 2 使用注意: 由于 Twine 2 会自动根据链接创建片段,如果你在链接组件里使用了复杂的表达式,它可能会生成一个名字奇奇怪怪的空白片段。在这种情况下,专业建议是改用
<<link>>宏形式来规避这个问题。
语法示例大全
假设变量 $school 的值为 "学校",$show 的值为 "去学校":
| 功能类型 | 语法结构 | 实际举例 |
|---|---|---|
| 基础链接 | [[目标]] | [[商店]] 或 [[$school]] |
| 带文本链接 | [[文本|目标]] | [[去商店|商店]] 或 [[$show|$school]] |
| 带设置器链接 | [[目标][设置]] | [[学校][$mood -= 10]] |
| 全功能链接 | [[文本|目标][设置]] | [[$show|$school][$mood -= 10]] |
代码实战
SugarCube
/* 简单跳转 */
要去[[图书馆]]看看吗?
/* 带有逻辑处理的跳转 */
[[进入森林|Forest][ $location = "woods"; $danger += 1 ]]
/* 外部链接示例 */
[[前往官网|[https://www.motoslave.net/sugarcube/](https://www.motoslave.net/sugarcube/)]]