第二站:创造岔路口
在上一站,我们点亮了故事的第一个场景。但一个真正的互动故事,魅力在于选择。现在,我们将学习如何为玩家创造故事的“岔路口”,让他们通过自己的决定,走向不同的未来。
第一步:在“剧本”中定义选项
要让玩家做出选择,我们需要在场景(节点)中添加一个名为 "links" 的属性。"links" 是一个数组(用 [ ] 表示),里面可以存放一个或多个“选择项”。
每个选择项都是一个独立的对象(用 { } 表示),它至少需要两个关键信息:
"text": 选项按钮上显示的文字。"target": 当玩家点击这个选项后,要跳转到的目标场景的名字(ID)。
让我们为 start 节点定义两个选择项:
json
"start": {
"text": "...",
"links": [
{
"text": "查看窗外",
"target": "look_outside"
},
{
"text": "检查床边的桌子",
"target": "check_desk"
}
]
}第二步:在“舞台”上放置选项
重要规则
这是 BandTwine 最核心的规则之一:仅仅定义了选项是不够的,我们还必须在场景的 "text" 属性中,明确地告诉引擎在哪里显示这些选项。
我们使用特殊的链接标记 {数字} 来完成这件事。{0} 代表 "links" 数组中的第一个选项,{1} 代表第二个,以此类推。
现在,让我们把链接标记放进 start 节点的 "text" 里:
json
"start": {
"text": "你在一间安静的房间里醒来,阳光透过窗帘的缝隙洒在地板上。你决定 {0} 还是 {1}?",
"links": [
{ "text": "查看窗外", "target": "look_outside" },
{ "text": "检查床边的桌子", "target": "check_desk" }
]
}提示
引擎在渲染这段文本时,会把 {0} 替换成一个可点击的"查看窗外"链接,把 {1} 替换成"检查床边的桌子"链接。
第三步:创建新的“场景”
最后,我们把 look_outside 和 check_desk 这两个新场景搭建起来,形成完整的 common/data.json:
json
{
"metadata": {
"indexNode": "start"
},
"nodes": {
"start": {
"text": "你在一间安静的房间里醒来,阳光透过窗帘的缝隙洒在地板上。你决定 {0} 还是 {1}?",
"links": [
{ "text": "查看窗外", "target": "look_outside" },
{ "text": "检查床边的桌子", "target": "check_desk" }
]
},
"look_outside": {
"text": "你拉开窗帘,外面是一片宁静的森林,薄雾弥漫在树林间。"
},
"check_desk": {
"text": "你走向桌子,上面放着一盏熄灭的油灯和一本合上的旧书。"
}
}
}🎉 太棒了!故事开始流动了!
恭喜!您现在已经掌握了创造非线性故事的核心技巧,并且理解了 BandTwine 最重要的链接标记规则。
故事不再是一条直线,而是拥有了分支。在下一站,我们将学习如何让这个世界拥有“记忆”,记录下玩家的每一个重要发现。
下一站: 第三步:赋予世界记忆