8. Создание матрицы разноцветных блоков и вложенные циклы

Для того, чтобы создать матрицы разноцветных блоков необходимо создать новый объект Script в службе ServerScriptService. Кнопка "+" в окне Explorer справа от службы, поменять имя объекта на Script_blocks (свойство Name) и добавить строчки кода:


-- Создание папки для хранения блоков
local partsFolder = Instance.new("Folder")
partsFolder.Name = "Parts"
partsFolder.Parent = workspace

-- Параметры матрицы
local rows = 10
local cols = 10
local spacing = 10 -- расстояние между частями
-- Создание матрицы частей
for i = 1, rows do
	for j = 1, cols do
		local part = Instance.new("Part")
		part.Size = Vector3.new(4, 1, 4) -- размер части
		part.Position = Vector3.new(10, 0, 10) + Vector3.new((j - 1) * (part.Size.X + spacing), spacing, (i - 1) * (part.Size.Z + spacing)) -- позиция части
		part.Anchored = true -- зафиксировать часть на месте
		part.Parent = game.Workspace.Parts -- добавить часть в игровое пространство
		part.BrickColor = BrickColor.Random() -- случайный цвет части
	end
end

			

Запустите игру и убедитесь, что сто блоков висит в воздухе. Если не зафиксировать блоки поменяв свойство part.Anchored = false, то блоки упадут на землю.

9 Кланируем паука по матрице разноцветных блоков

Добавьте модель Enemy Spider из Toolbox на наше рабочее пространство(Workspace) и переместите его в службу ReplicatedStorage меняя свойство Parent:

Обновите строчки кода:


-- Создание папки для хранения блоков
local partsFolder = Instance.new("Folder")
partsFolder.Name = "Parts"
partsFolder.Parent = workspace

-- Параметры матрицы
local rows = 10
local cols = 10
local spacing = 10 -- расстояние между частями
-- Создание матрицы частей
for i = 1, rows do
	for j = 1, cols do
		local part = Instance.new("Part")
		part.Size = Vector3.new(4, 1, 4) -- размер части
		part.Position = Vector3.new(10, 0, 10) + Vector3.new((j - 1) * (part.Size.X + spacing), spacing, (i - 1) * (part.Size.Z + spacing)) -- позиция части
		part.Anchored = true -- зафиксировать часть на месте
		part.Parent = game.Workspace.Parts -- добавить часть в игровое пространство
		part.BrickColor = BrickColor.Random() -- случайный цвет части
	end
end
-- Создание папки для хранения пауков
local partsFolderSpider = Instance.new("Folder")
partsFolderSpider.Name = "Spider"
partsFolderSpider.Parent = workspace

local spawns = partsFolder--это папка с блоками
local spawn_time = 5 --период через который появляются новые пауки в секундах
while true do --до тех пор пока 1==1? - всегда повторяться
	wait(spawn_time) -- ждём указанное время
	for _, spwn in pairs(spawns:GetChildren()) do --перебор пар из списка объектов внутри папки с блоками
		if spwn:IsA('BasePart') then --является ли этот элемент потомком BasePart?
			local Spider = game.ReplicatedStorage['Enemy Spider']:Clone()
			Spider.Parent = partsFolderSpider -- помещаем его в Workspace (появляется на карте)
			Spider.Torso.CFrame = CFrame.new(spwn.Position + Vector3.new(0,3,0))
		end
	end
end
			

Вы можете эсперементировать с кодом меняя параметры матрицы и время клонирования пауков.