Menu
CoddyTech

Menara Acak

Pelajaran 3 dari 18 dalam kursus Game Roblox: Menara Tanpa Akhir di Coddy.

Menara dengan stage yang sama sebanyak lima kali tidak seru. ServerStorage.Stages berisi tujuh jenis: Steps, KillBricks, Conveyor, VanishingSteps, Bounce, Spinner, dan Lasers. Pilih satu secara acak untuk setiap lantai:

local all = stages:GetChildren()
local stage = all[math.random(1, #all)]

math.random(1, #all) menghasilkan bilangan bulat dari 1 hingga jumlah stage, jadi setiap stage memiliki peluang yang sama. Sebagian besar stage belum melakukan apa pun: spinner, belt, dan laser-nya akan aktif di bab berikutnya.

Di atas stage terakhir diletakkan ServerStorage.Finish, sebuah pad emas tempat pendakian berakhir. stack sudah bisa mengangkat Model apa pun, jadi Finish juga ikut terangkat.

challenge icon

Tantangan

Mudah
  1. Tulis pickStage(): kembalikan child acak dari stages.
  2. Di buildTower, stack pickStage() alih-alih stages.Steps.
  3. Setelah perulangan, stack ServerStorage.Finish di bagian paling atas.

Tekan Play beberapa kali: setiap menara berbeda. Lalu tekan Check.

Coba sendiri

local Players = game:GetService("Players")
local ServerStorage = game:GetService("ServerStorage")
local Settings = require(game.ReplicatedStorage.Settings)

local stages = ServerStorage.Stages
local tower = nil

print("Each tower has " .. Settings.StageCount .. " stages")

-- Setiap pemain mendapat Wins di papan peringkat
Players.PlayerAdded:Connect(function(player)
	local leaderstats = Instance.new("Folder")
	leaderstats.Name = "leaderstats"
	leaderstats.Parent = player

	local wins = Instance.new("IntValue")
	wins.Name = "Wins"
	wins.Parent = leaderstats
end)

-- Letakkan salinan model di atas menara; kembalikan salinan dan posisi puncak yang baru
local function stack(template, bottom)
	local copy = template:Clone()
	local box, size = copy:GetBoundingBox()
	local lift = bottom - (box.Position.Y - size.Y / 2)
	copy:PivotTo(copy:GetPivot() + Vector3.new(0, lift, 0))
	copy.Parent = tower
	return copy, bottom + size.Y
end

-- Bangun menara dari tahap Steps
local function buildTower()
	tower = Instance.new("Model")
	tower.Name = "Tower"
	tower.Parent = workspace
	local top = 0
	for i = 1, Settings.StageCount do
		local stage, newTop = stack(stages.Steps, top)
		top = newTop
	end
end

buildTower()
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Game Roblox: Menara Tanpa Akhir

Latihan sendiri: Playground Roblox