Menu
CoddyTech

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.

challenge icon

Aufgabe

Einfach
  1. Schreibe pickStage(): Gib ein zufälliges Kind von stages zurück.
  2. Staple in buildTower pickStage() statt stages.Steps.
  3. Staple nach der Schleife ServerStorage.Finish oben 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()
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Roblox-Spiel: Endloser Turm