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.
Tantangan
Mudah- Tulis
pickStage(): kembalikan child acak daristages. - Di
buildTower, stackpickStage()alih-alihstages.Steps. - Setelah perulangan, stack
ServerStorage.Finishdi 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()
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Game Roblox: Menara Tanpa Akhir
4Jadikan Ini Sebuah Permainan
Tahap di Papan PeringkatLatihan sendiri: Playground Roblox