消失的桥
本课属于 Coddy Lua 学习旅程的“Roblox 游戏脚本编写”单元。第 10 课,共 25 课。
闪烁的灯光只改变了一部分。桥上有很多台阶,它们都必须一起改变。
GetChildren() 会将对象的直接子级作为一个表返回,可直接用于 for 循环。属于对象的函数(例如 GetChildren)要用冒号调用:
for _, child in workspace.Bridge:GetChildren() do
print(child.Name)
end文件夹也可以存放你的 Script,而 Script 没有 Transparency。对于每一种部件,child:IsA("BasePart") 的结果都是 true,而对于 Script,结果是 false。只有条件为 true 时,if condition then ... end 才会运行其中的语句:
if child:IsA("BasePart") then
child.Transparency = 0.8
end部件即使可以透视,仍然可能是实体:只有设置 CanCollide = false,玩家才能穿过去。
挑战
简单让桥上的四级台阶消失又出现,循环往复。
- 将
task.wait(2)和下面的循环放入while true do ... end中。 - 在其中那个循环之后,再添加一个
task.wait(2),以及第二个循环,将Transparency设为0,并将CanCollide设为true。
按“开始”:台阶每隔 4 秒淡出,并在 2 秒后重新出现。然后按“检查”。
亲手试试
local bridge = script.Parent
-- 这会让台阶在 2 秒后消失一次。
-- 让它们再过 2 秒重新出现,并一直重复这个过程。
task.wait(2)
for _, step in bridge:GetChildren() do
if step:IsA("BasePart") then
step.Transparency = 0.8
step.CanCollide = false
end
end
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
Roblox 游戏脚本编写中的所有课
自己练习: Lua 在线编译器