Lua - это мощный скриптовый язык,
Через lua можно менять мир Roblox.
Можно создать игру со своим сценарием.
Lua - это мощный скриптовый язык,
Через lua можно менять мир Roblox.
Можно создать игру со своим сценарием.
В этом уроке мы изучим, как создать объекты в игровом мире шаг за шагом, начиная от клонирования одного блока до генерации полной матрицы блоков. Урок разбит на три части.
На первом этапе мы создадим один клон объекта из `ReplicatedStorage` и разместим его в игровом пространстве.
-- Создание папки для хранения клонов
local partsFolder = Instance.new("Folder")
partsFolder.Name = "Parts"
partsFolder.Parent = workspace
-- Клонируем блок
local block = game.ReplicatedStorage['Kill brick']:Clone()
-- Кладем в папку Parts
block.Parent = partsFolder
-- Устанавливаем позицию блока
block.Position = Vector3.new(10, 0, 10)
Запустите игру, чтобы убедиться, что блок появляется в указанной позиции.
Теперь мы создадим строку из нескольких клонов, используя цикл для позиционирования каждого блока в ряд.
-- Создание папки для хранения блоков
local partsFolder = Instance.new("Folder")
partsFolder.Name = "Parts"
partsFolder.Parent = workspace
-- Параметры строки
local numParts = 10 -- количество частей в строке
local spacing = 10 -- расстояние между частями
local size = 10 -- размер части
-- Создание строки частей
for j = 1, numParts do
Position = Vector3.new(10, 0, 10) + Vector3.new((j - 1) * (size + spacing), 0, 0) -- позиция части
local Spider = game.ReplicatedStorage['Kill brick']:Clone()
Spider.Parent = partsFolder -- помещаем его папку в Workspace.Parts (появляется на карте)
Spider.Position = Position + Vector3.new(0,3,0)
end
Запустите игру, чтобы увидеть строку из 10 блоков, расположенных рядом друг с другом.
В завершение мы создадим полную матрицу блоков, используя двойной цикл для позиционирования блоков в рядах и столбцах.
-- Создание папки для хранения блоков
local partsFolder = Instance.new("Folder")
partsFolder.Name = "Parts"
partsFolder.Parent = workspace
-- Параметры матрицы
local rows = 10
local cols = 10
local spacing = 10 -- расстояние между частями
local size = 10 -- размер матрицы
-- Создание матрицы частей
for i = 1, rows do
for j = 1, cols do
Position = Vector3.new(10, 0, 10) + Vector3.new((j - 1) * (size + spacing), 0, (i - 1) * (size + spacing)) -- позиция части
local Spider = game.ReplicatedStorage['Kill brick']:Clone()
Spider.Parent = partsFolder -- помещаем его папку в Workspace.Parts (появляется на карте)
Spider.Position = Position + Vector3.new(0,3,0)
end
end
Запустите игру, чтобы увидеть, как генерируются блоки, образуя полную матрицу.
Можно менять код.
-- Функция для генерации случайной горизонтальной позиции
local function getRandomHorizontalPosition()
local randomX = math.random(-10, 10) -- Случайное изменение по оси X
local randomZ = math.random(-10, 10) -- Случайное изменение по оси Z
return Vector3.new(randomX, 0, randomZ)
end
course = getRandomHorizontalPosition()
-- Цикл бесконечного перемещения блока
while true do
-- Устанавливаем новую цель позиции на основе случайного смещения
alignPosition.Position = part.Position + course
wait(1)
alignPosition.Position = part.Position - course
wait(1)
end
Запустите игру, чтобы увидеть, как генерируются блоки, образуя полную матрицу.