对象与查询变量|Objects and Lookup Variables
除了您创建的变量之外,Chapbook 还维护了许多称为查询的内置变量。与常规变量不同,查询变量无法由您更改。相反,它们对应于环境中的属性——例如玩家与您的故事互动时的当前日期和时间,甚至故事本身。
对象简介|Introducing Objects
为了尽可能为您保留更多可用的变量名,Chapbook 将其内置的查询变量通过对象进行分组。对象是另一种类型的变量——类似于字符串、布尔值或数字——它充当其他变量的容器。与字符串或数字等简单变量类型不同,对象本身没有值。它们只包含其他变量。
要访问对象容器内的变量,请输入对象名称,然后是一个句点(.),再然后是变量名。例如,story.name 访问的是 story 对象内名为 name 的变量。
您可以根据需要任意嵌套对象,并且也可以在段落(passage)的变量部分编写类似这样的内容:
my.favorite.variable: '红色'
如果尚不存在,Chapbook 将为您创建每个对象变量(例如 my 和 favorite)。
内置查询变量|Built-In Lookup Variables
以下是 Chapbook 为您维护的查询列表:
| 变量名称 | 描述 | 示例 |
|---|---|---|
browser.darkTheme |
当前 Chapbook 使用的有效主题是否为深色模式。 | true |
browser.darkSystemTheme |
浏览器当前是否设置为使用深色用户界面。通常通过系统偏好设置实现。 | true |
browser.height |
浏览器窗口的高度(以像素为单位)。 | 768 |
browser.online |
浏览器当前是否具有网络连接。 | true |
browser.width |
浏览器窗口的宽度,以像素为单位。 | 1024 |
engine.version |
当前运行的 Chapbook 版本,以字符串形式表示。 | '1.0.0' |
now.datestamp |
当前日期的简短、人类可读描述。 | '2/15/2011' |
now.day |
当前月份中的日期,范围是 1 到 31。 | 15 |
now.hour |
当前时间的小时数,其中午夜为 0,晚上 11 点为23。 | 18 |
now.minute |
当前时间的分钟数,范围是 0 到 59。 | 15 |
now.month |
当前月份,范围是 1 到 12。 | 2 |
now.monthName |
当前月份的名称。 | 'February' |
now.second |
当前时间的秒数,范围 0-59。 | 45 |
now.timestamp |
当前时间的十二小时制易读版本。 | '6:18:15 PM' |
now.weekday |
当前星期几,其中星期日为 1,星期三为 4,星期六为 7。7. | 3 |
now.weekdayName |
前星期几的名称。 | 'Tuesday' |
now.year |
当前的四位数年份。 | 2011 |
passage.from |
玩家最后访问的段落名称,由 Twine 编辑器中设置的一样。若玩家仅访问过单个段落,则此项 undefined(未定义)。undefined. |
'Untitled Passage 1' |
passage.fromText |
玩家上次用于跳转至新段落的链接文本。若玩家仅访问过单个段落,则此项为 undefined。若玩家通过点击链接以外的其他方式移动至另一段落,则此项反映的是最后使用的链接。 |
'Link name' |
passage.name |
在 Twine 编辑器中设置的当前段落名称。 | 'Untitled Passage' |
passage.visits |
玩家已查看当前段落的次数,包括当前这次。也就是说,玩家首次查看一个段落时,此查询变量的值为 1。 | 1 |
story.name |
故事在 Twine 编辑器中设定的名称。 | 'Untitled Story' |
请注意,now 查询值反映的是它们最后一次被访问的时间,这通常是在导航到某个段落时。像 now.monthName 这样的字符串值会根据玩家在浏览器中设置的默认语言而变化——例如,法国人会看到 Août,而美国人会看到 August;同样地,法国人看到的 now.datestamp 会是 '15/2/2011',而美国人看到的则是 '2/15/2011'。