在 Roblox Studio 介绍 中,你学习了如何在 Roblox Studio 中创建和操作零件。在本教程中,你将学习如何将 脚本 应用到零件上,使平台出现并消失。您可以在平台体验中使用此功能来缩小差距,挑战用户仔细计时跳跃到另一边。
设置场景
首关闭,你需要一个 零件 来作为平台。制作和移动零件应该在 Roblox Studio 介绍 中对你熟悉。除了平台之外,你不需要一个复杂的世界——你只需要一个间隙,你的用户无法轻松跳过。
插入一个 零件 并将其重命名为 DisappearingPlatform .
将其调整为足够大,以便用户可以跳上。
将其移至正确的位置,以便您可以达到它并在测试体验时跳上它。
在 属性 窗口中将 锚定 属性设置为 true 。
插入脚本
Roblox 中的代码使用了一种叫做 Luau 的语言,您可以将其放入 Explorer 中的各种容器中的脚本。如果你在 零件 下放置了一个脚本,Roblox 将在零件加载到游戏时运行脚本的代码。
将鼠标悬停在 DisappearingPlatform 部分上的 Explorer 窗口,然后单击 + 按钮,将新脚本插入平台。将你的新脚本重命名为 消失 .
删除内部的默认代码。
第一个变量
将脚本开始通过为平台创建 变量 来启动您的脚本是一个好主意。变量是与 值 相关的 名称 .一旦变量被创建,它可以再次使用。您可以根据需要更改值。
在 Luau 中,变量以下方式创建:local variableName = variableValue。
术语 local 意味着变量只能在声明的脚本块中使用。= 标志用于设置变量的值。变量名通常以 驼壳形式 写入。这是每个单词都跟随第一个大写字母的小写字母,justLikeThis。
复制以下代码以创建一个名为 变量 的平台,其值为 .
local platform = script.Parent
消失函数
是时候让平台消失了。实现特定操作的代码总是最好组成一个 函数 。函数是一个命名的代码块,可以帮助你组织你的代码并在多个地方使用它,而不需要再次编写它。在脚本中创建一个 函数 并调用它 disappear .
local platform = script.Parent
local function disappear()
end
第一行新声明 宣布 函数 — 它表示函数的开始并将其命名为 disappear 。函数的代码位于第一行和 end 之间。
括号用于包含额外信息,根据需要。你将在以后的课程中学习更多关于向函数传递信息的内容。
零件属性
当平台消失时,它需要是隐形的,用户需要通过它掉落—但你不能只是摧毁平台,因为它需要稍后重新出现。
零件有各种 属性 可以在这里使用。请记住,如果您选择并查看 属性 窗口,您可以看到零件的属性。
通过更改 Transparency 属性,零件可以被隐藏。透明度可以在 0 和 1 之间,其中 1 完全透明且因此隐形。
CanCollide 属性决定其他部分(和用户)是否可以直接通过零件。如果您将其设置为 假 ,用户将通过平台掉落。
与 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 dotask.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