Ein zufälliger Turm
Lektion 3 von 18 im Kurs Roblox-Spiel: Endloser Turm von Coddy.
Ein Turm aus fünfmal derselben Etappe macht keinen Spaß. ServerStorage.Stages enthält sieben Arten: Steps, KillBricks, Conveyor, VanishingSteps, Bounce, Spinner und Lasers. Wähle für jede Ebene zufällig eine aus:
local all = stages:GetChildren()
local stage = all[math.random(1, #all)]math.random(1, #all) ist eine ganze Zahl von 1 bis zur Anzahl der Etappen, sodass jede Etappe die gleiche Chance hat. Die meisten davon tun noch nichts: Ihre Spinner, Förderbänder und Laser erwachen erst im nächsten Kapitel zum Leben.
Auf die letzte Etappe kommt ServerStorage.Finish, eine goldene Plattform, an der der Aufstieg endet. stack hebt bereits jedes Model an, also hebt es auch Finish an.
Aufgabe
Einfach- Schreibe
pickStage(): Gib ein zufälliges Kind vonstageszurück. - Staple in
buildTowerpickStage()stattstages.Steps. - Staple nach der Schleife
ServerStorage.Finishoben drauf.
Drücke ein paar Mal auf Play: Jeder Turm ist anders. Klicke dann auf Check.
Probier es selbst
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")
-- Jeder Spieler erhält Wins auf der Bestenliste
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)
-- Platziere eine Kopie eines Modells auf dem Turm; gibt die Kopie und die neue Oberkante zurück
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
-- Baue einen Turm aus der Stage 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()
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.