第一站:点亮第一个场景
欢迎来到您的第一个创作现场!
在这一站,我们的目标非常简单:创造一个故事的起点,让它在屏幕上显示出第一句话。这就像为一部戏剧搭建好第一个舞台,并让主角说出第一句台词。别担心,这个过程比您想象的要简单得多。
故事的“剧本”:common/data.json 文件
在 BandTwine 的世界里,您所有的故事都居住在一个名为 common/data.json 的文件中。您可以把它想象成是您故事的“总剧本”或“设计蓝图”。我们所有的创作,都将通过修改这个文件来完成。
一个最基础的剧本,是一个空的 JSON 对象:
{
}很简单,对吧?现在,让我们开始往里面填充内容。
搭建第一个“场景” (Node)
在 BandTwine 的术语里,一个“场景”、一个“段落”或者一个“事件”,都被称作一个 节点 (Node)。故事就是由许许多多这样的节点连接而成的。
让我们来创建第一个节点。这个节点将是故事的入口,我们给它起个名字,叫 start。
请将以下代码复制到您的 common/data.json 文件中:
{
"nodes": {
"start": {
"text": "你在一间安静的房间里醒来,阳光透过窗帘的缝隙洒在地板上。"
}
}
}这段代码的意思是:
"nodes"是一个大书架,用来存放我们所有的场景(节点)。"start"是我们给第一个场景起的名字(ID)。这个名字必须是唯一的,就像每个人的身份证号。"text"属性,就是这个场景要显示的文字内容。这里就是您作为故事讲述者,对玩家说的第一句话。
重要提示
在实际开发中,请确保您的 common/data.json 文件编码为 UTF-8,以避免中文显示异常。
指定故事的“入口”
现在,我们已经有了一个场景,但还需要告诉 BandTwine 引擎:“嘿,请从这个叫 start 的场景开始我的故事!”
我们需要在剧本里加一个“路标”,告诉引擎故事的入口在哪里。这个路标就是 indexNode。
让我们来完善 common/data.json:
{
"metadata": {
"indexNode": "start"
},
"nodes": {
"start": {
"text": "你在一间安静的房间里醒来,阳光透过窗帘的缝隙洒在地板上。"
}
}
}这段代码的意思是:
"metadata"用来存放故事的基本信息,就像一本书的封面信息。- 其中最重要的
"indexNode"就指定了故事的起始节点ID。它的值"start",必须和我们在"nodes"里定义的场景名字完全一样。
重要提示
indexNode 的值必须与 nodes 中定义的节点ID完全一致,否则引擎将无法找到故事入口。
🎉 恭喜!您已完成第一步!
就是这么简单!您已经成功地创建了故事的第一个场景。当这个 common/data.json 文件被 BandTwine 引擎加载时,玩家的屏幕上就会显示出:“你在一间安静的房间里醒来,阳光透过窗帘的缝隙洒在地板上。”
虽然现在它还不能互动,但您已经点亮了故事世界的第一盏灯。
在下一站,我们将学习如何为这个场景添加选择,让故事真正地“动”起来。
下一站: 第二步:创造岔路口