在 Roblox Studio 介绍 中,您学习了如何在 Roblox Studio 中创建和操作部件。在本教程中,您将学习如何将 脚本 应用到部件上,使平台出现和消失。您可以在平台游戏中使用此功能来跨越间隙,挑战用户仔细把握跳跃时机以到达另一侧。
设置场景
首先,您需要一个 部件 来充当平台。从 Roblox Studio 介绍 中,您应该对创建和移动部件感到熟悉。您不需要一个复杂的世界,只需一个用户无法轻易跳过的间隙即可。
插入一个 部件 并将其重命名为 DisappearingPlatform。
调整其大小,使其足够大以供用户跳跃。
将其移动到合适的位置,以便在测试游戏时可以到达并跳上去。

在 属性 窗口中将 Anchored 属性设置为 true。

插入脚本
Roblox 中的代码是用一种叫做 Luau 的语言编写的,您可以将其放入 资源管理器 中的各种容器中的脚本中。如果您将脚本放在 部件 下,Roblox 会在部件加载到游戏中时运行脚本的代码。
在 资源管理器 窗口中,将鼠标悬停在 DisappearingPlatform 部件上,点击 + 按钮以在平台中插入新脚本。将新脚本重命名为 Disappear。

删除默认代码。
第一个变量
在脚本开始时创建一个 变量 来表示平台是个好主意。变量是与 值 相关联的 名称。一旦创建了变量,就可以反复使用。您可以根据需要更改值。
在 Luau 中,变量的创建方式如下:local variableName = variableValue。
local 这个术语意味着变量只会在声明它的脚本块中使用。= 符号用于设置变量的值。变量的名称通常采用 驼峰命名法。这意味着第一个单词小写,后面的每个单词首字母大写,例如 justLikeThis。
复制以下代码以创建一个名为 platform 的 变量,其值为 script.Parent。
local platform = script.Parent消失函数
是时候让平台消失了。将实现特定操作的代码分组到一个 函数 中总是最好的。函数是一个命名的代码块,帮助您组织代码并在多个地方使用,而无需重复编写。创建一个名为 disappear 的 函数。
local platform = script.Parent
local function disappear()
end第一行新代码 声明 了函数——它指示函数的开始并将其命名为 disappear。函数的代码位于第一行和 end 之间。
括号用于根据需要包含额外信息。您将在后面的课程中学习更多关于向函数传递信息的内容。
部件属性
当平台消失时,它需要不可见,用户需要能够穿过它——但您不能简单地销毁平台,因为它需要在稍后重新出现。
部件有各种 属性 可以在这里使用。请记住,如果您选择一个部件并查看 属性 窗口,您可以看到该部件的属性。
通过更改 Transparency 属性,可以使部件变得不可见。透明度的值可以在 0 和 1 之间,其中 1 是完全透明,因此不可见。
CanCollide 属性决定其他部件(和用户)是否可以穿过该部件。如果将其设置为 false,用户将会穿过平台。
就像 script.Parent 一样,属性是通过 点 访问的。使用等号分配值。
在 disappear 函数中,将平台的 CanCollide 属性设置为 false。
在下一行,将 Transparency 属性设置为 1。
local platform = script.Parentlocal function disappear()platform.CanCollide = falseplatform.Transparency = 1end
调用函数
一旦您声明了一个函数,就可以通过在其名称旁边写上括号来运行它。例如,disappear() 将运行 disappear 函数。这被称为 调用 函数。
在脚本的末尾 调用 disappear 函数。
local platform = script.Parentlocal function disappear()platform.CanCollide = falseplatform.Transparency = 1enddisappear()启动游戏测试。如果您的代码正常工作,用户生成时平台应该已经消失。
出现函数
您可以通过编写一个与 disappear 函数完全相反的函数来轻松使平台重新出现。
从脚本中删除 disappear() 行。
声明一个名为 appear 的新函数。
在函数体内,将 CanCollide 属性设置为 true,将 Transparency 属性设置为 0。
local platform = script.Parentlocal function disappear()platform.CanCollide = falseplatform.Transparency = 1endlocal function appear()platform.CanCollide = trueplatform.Transparency = 0end
循环代码
平台应该不断地消失和重新出现,每次变化之间间隔几秒。编写无限数量的函数调用是不可能的——幸运的是,使用 while 循环,您不必这样做。
while 循环在 while 后的 语句 为真时运行其中的代码。这个特定的循环需要永远运行,因此语句应该只是 true。在脚本的末尾创建一个 while true 循环。
local platform = script.Parent
local function disappear()
platform.CanCollide = false
platform.Transparency = 1
end
local function appear()
platform.CanCollide = true
platform.Transparency = 0
end
while true do
end切换平台
在 while 循环中,您需要编写代码以在平台消失和重新出现之间等待几秒钟。
可以使用内置函数 task.wait() 来实现这一点。在括号中需要等待的秒数:例如 task.wait(3)。
三秒是每个平台状态之间的合理起始时间。
- 在 while 循环中,调用 task.wait() 函数,括号中传入 3。
- 调用 disappear 函数。
- 再次调用 task.wait() 函数,括号中传入 3。
- 调用 appear 函数。
while true do
task.wait(3)
disappear()
task.wait(3)
appear()
end平台的代码现在完成了!现在测试您的代码,您应该发现平台在三秒后消失,三秒后重新出现,并循环进行。
您可以复制此平台以覆盖更大的间隙,但您需要更改每个脚本中的等待时间。否则,所有平台将同时消失,用户将无法通过。
最终代码
local platform = script.Parent
local function disappear()
platform.CanCollide = false
platform.Transparency = 1
end
local function appear()
platform.CanCollide = true
platform.Transparency = 0
end
while true do
task.wait(3)
disappear()
task.wait(3)
appear()
end