Часть 1: Создание одного клона

На первом этапе мы создадим один клон объекта из `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)
        

Запустите игру, чтобы убедиться, что блок появляется в указанной позиции.

Часть 2: Создание строки клонов

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

Код


-- Создание папки для хранения блоков
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 блоков, расположенных рядом друг с другом.

Часть 3: Создание матрицы блоков

В завершение мы создадим полную матрицу блоков, используя двойной цикл для позиционирования блоков в рядах и столбцах.

Код


-- Создание папки для хранения блоков
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
        

Запустите игру, чтобы увидеть, как генерируются блоки, образуя полную матрицу.

Часть 4: Создание случайного перемещения блоков

Можно менять код.

Код


-- Функция для генерации случайной горизонтальной позиции
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
        

Запустите игру, чтобы увидеть, как генерируются блоки, образуя полную матрицу.