Menu
CoddyTech

Исчезающий мост

Часть раздела Скриптинг игр в Roblox путешествия по Lua на Coddy. Урок 10 из 24.

Мигающий свет изменил одну часть. У моста много ступеней, и все они должны меняться одновременно.

GetChildren() возвращает непосредственные дочерние объекты объекта в виде таблицы, готовой для цикла for. Функции, принадлежащие объекту, например GetChildren, вызываются с двоеточием:

for _, child in workspace.Bridge:GetChildren() do
	print(child.Name)
end

Папка может содержать и ваш Script, а у Script нет свойства Transparency. child:IsA("BasePart") возвращает true для деталей любого типа и false для Script. if condition then ... end выполняет строки внутри только в том случае, если условие истинно:

if child:IsA("BasePart") then
	child.Transparency = 0.8
end

Деталь может быть прозрачной и при этом оставаться твёрдой: именно CanCollide = false позволяет игрокам проваливаться сквозь неё.

challenge icon

Задание

Легко

Над пустотой расположены четыре ступеньки моста, и этот скрипт находится в папке моста. Он заставляет ступеньки исчезнуть один раз. Сделай так, чтобы цикл моста повторялся бесконечно:

  • через 2 секунды после начала ступеньки исчезают: Transparency 0.8, CanCollide false
  • ещё через 2 секунды они возвращаются: Transparency 0, CanCollide true
  • это повторяется каждые 4 секунды бесконечно

Нажми Play и рассчитай время, чтобы перебежать мост, затем нажми Check.

Попробуйте сами

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
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Скриптинг игр в Roblox

Потренируйтесь самостоятельно: Онлайн-компилятор Lua