在编码中,变量是游戏中不同类型信息的占位符,例如玩家名称、团队得分或故事游戏中的单词。在本章中,让我们探索如何打开核心游戏玩法的主脚本,并添加代码以询问玩家问题并使用他们的答案来构建你的故事。
打开脚本
Roblox 创作者在 脚本 中编写代码,这些脚本告诉 Studio 如何以及何时为游戏添加自定义行为,例如触发不同类型的事件、保存玩家信息或生成敌人。Roblox 脚本使用 Luau 编程语言,你可以在 编码基础 系列中了解更多信息。
故事游戏模板使用一个名为 StoryManager 的脚本来控制游戏的核心玩法。该脚本已经包含了一些显示完整故事所需的代码,但你将添加更多代码以展示你的互动故事。
要打开 StoryManager 脚本:
在 资源管理器 窗口中,单击 StarterGui 旁边的箭头以查看其包含的所有内容。GameGui 显示。
单击 GameGui 旁边的箭头以查看其包含的所有内容。StoryManager 脚本显示在顶部,旁边还有一些与本课无关的其他内容。

双击 StoryManager 脚本。脚本的代码显示。
-- GLOBAL VARIABLES
local storyMaker = require(script:WaitForChild("StoryMaker"))
-- Code controlling the game
local playing = true
while playing do
storyMaker:Reset()
-- Code story between the dashes
-- =============================================
-- =============================================
-- Add the story variable between the parenthesis below
storyMaker:Write()
-- Play again?
playing = storyMaker:PlayAgain()
end注意代码中有很大一部分使用了 -- 符号,这被称为 注释。编码者使用注释来留下笔记,它们不会改变脚本的运行方式。在本课中,你将创建代码在虚线注释之间,以便你可以专注于在一个地方创建你的互动故事。
询问玩家问题
作为最佳实践,编码者创建描述他们存储的信息类型的变量名称。例如,如果你正在开发一个将玩家分成团队的游戏:
- team 变量存储有关玩家 团队 的信息。
- teamColor 变量存储有关玩家 团队颜色 的信息。
- teamScore 变量存储有关玩家 团队得分 的信息。
变量可以存储各种信息,例如小数字、真或假的答案以及字符串。字符串类型的变量是特殊的,因为它们可以存储完整的句子,包括你想要询问玩家的问题。
使用你在上一章中的占位符词,你可以创建字符串类型的变量,使用相同的占位符名称来描述你将要询问玩家的单词类型。
要为你的玩家问题创建变量:
在虚线注释下方创建一个本地变量,用于第一个你希望玩家用自己的答案替换的单词。例如:
-- =============================================local name1-- =============================================使用 = 符号将变量设置为提供的 storyMaker:GetInput() 方法,该方法在巨大的书中显示你的问题。你必须准确输入这个方法及其特定的大小写,以使代码正常工作。例如:
-- =============================================local name1 = storyMaker:GetInput()-- =============================================在括号之间创建一个字符串,包含你想要询问玩家的问题。记住,字符串总是用引号括起来的!
-- =============================================local name1 = storyMaker:GetInput("你最喜欢的名字是什么?")-- =============================================
使用他们的答案
现在你有了一个玩家可以回答的问题,是时候编写你的故事代码并添加行为,以用他们的答案替换你的占位符词。
要为你的故事创建变量并使用玩家的答案:
在你的问题下方,创建一个名为 story 的新变量。记住,变量名是小写的!
-- =============================================local name1 = storyMaker:GetInput("你最喜欢的名字是什么?")local story-- =============================================将你的字符串类型变量设置为故事的第一句,在第一个占位符之前留一个空格,最后一个单词和引号之间。如果你的占位符词恰好在句子的中间,你可以在教程的后面章节中添加句子的其余部分。
-- =============================================local name1 = storyMaker:GetInput("你最喜欢的名字是什么?")local story = ("在山上的树上住着伟大的巫师 ")-- =============================================使用 .. 将故事的第一字符串与玩家的答案结合在一起。将事物结合在一起称为 连接。
- 在 story 变量的同一行上,添加两个句点。
- 添加一个空格,然后输入存储玩家第一个答案的变量名称。
-- =============================================local name1 = storyMaker:GetInput("你最喜欢的名字是什么?")local story = ("在山上的树上住着伟大的巫师 " .. name1)-- =============================================通过调用提供的 storyMaker:Write() 方法来向玩家展示故事的第一部分,该方法将在巨大的书中写入你的故事。
-- =============================================local name1 = storyMaker:GetInput("你最喜欢的名字是什么?")local story = ("在山上的树上住着伟大的巫师 " .. name1)-- =============================================-- =============================================storyMaker:Write(story)
现在是一个很好的时机暂时停止,进行下一章的游戏测试,确保故事正常工作!