Menu
CoddyTech

Строитель башен

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

Функция — это именованный фрагмент кода, который можно выполнять, когда он нужен. Передаваемые в неё значения называются параметрами:

local function greet(name)
	print("Welcome, " .. name)
end

greet("Ava")
greet("Leo")

.. объединяет две строки, поэтому "Welcome, " .. "Ava" — это Welcome, Ava. Код выводит Welcome, Ava и Welcome, Leo. Определение функции только сохраняет её; каждый вызов, например greet("Ava"), выполняет её код, присваивая name переданное значение.

Функция может принимать несколько параметров, разделённых запятыми, и использовать их где угодно внутри, например, чтобы задать размер:

local function makeWall(width, height)
	local wall = Instance.new("Part")
	wall.Size = Vector3.new(width, height, 1)
	wall.Anchored = true
	wall.Parent = workspace
end

makeWall(10, 6)

makeWall(10, 6) задаёт width значение 10, а height — значение 6, именно в таком порядке.

Деталь растёт одинаково вверх и вниз относительно своей позиции, поэтому деталь высотой h стоит на земле (Y 0), когда её центр находится на высоте h / 2.

challenge icon

Задание

Легко

Заверши makeTower(x, height) и используй её три раза.

  1. Задай размер башни с помощью Vector3.new(4, height, 4).
  2. Задай её положение с помощью Vector3.new(x, height / 2, 0), чтобы она стояла на земле.
  3. Вызови её для значений (-10, 6), (0, 12) и (10, 18).

Нажми «Играть»: три башни стоят в ряд, и каждая выше предыдущей. Затем нажми «Проверить».

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

local function makeTower(x, height)
	local tower = Instance.new("Part")
	tower.Name = "Tower"
	tower.Anchored = true
	-- Размер: ширина 4, высота height, глубина 4
	-- Положение: в точке x, стоит на земле (центр на высоте height / 2)
	tower.Parent = workspace
end

makeTower(-10, 6)

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

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