Menu
CoddyTech

Die Rundenschleife

Lektion 4 von 18 im Kurs Roblox-Spiel: Katastrophen überleben von Coddy.

Ein Rundenspiel endet nie: Lobby, Runde, Lobby, Runde. Das ist eine while-Schleife, deren Bedingung immer wahr ist:

while true do
	-- der Countdown in der Lobby
	-- die Runde
end

Alles darin wird jedes Mal wieder von oben ausgeführt, wenn es end erreicht. Da eine while true-Schleife nie endet, steht sie ganz am Ende des Skripts: Code danach würde nie ausgeführt werden. Bei jedem Durchlauf muss außerdem irgendwo gewartet werden, sonst würde die Schleife dem restlichen Spiel nie einen Zug überlassen und Roblox würde das Skript stoppen.

Auch die Runde zählt herunter, ausgehend von Settings.RoundLength, damit die Spieler sehen, wie lange sie überleben müssen.

challenge icon

Aufgabe

Einfach

Mach den Countdown zur Spielschleife:

  1. Umschließe ihn mit while true do ... end.
  2. Ersetze Get ready! durch die Runde: Zähle von Settings.RoundLength bis 1 herunter, im Abstand von einer Sekunde, und zeige Time left: 15, Time left: 14 und so weiter an.

Drücke auf Play und beobachte, wie eine Runde abläuft und der Lobby-Countdown erneut startet, und klicke dann auf Check.

Probier es selbst

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

print("Rounds last " .. Settings.RoundLength .. " seconds")

-- 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)

-- Die Statusanzeige in der Lobby
local gui = Instance.new("SurfaceGui")
gui.Parent = workspace.StatusBoard

local status = Instance.new("TextLabel")
status.Name = "Status"
status.Size = UDim2.fromScale(1, 1)
status.BackgroundColor3 = Color3.fromRGB(25, 25, 35)
status.TextColor3 = Color3.fromRGB(255, 255, 255)
status.TextScaled = true
status.Text = "Welcome to Disaster Survival!"
status.Parent = gui

local function setStatus(text)
	status.Text = text
end

-- Der Countdown
for seconds = Settings.Intermission, 1, -1 do
	setStatus("Intermission: " .. seconds)
	task.wait(1)
end
setStatus("Get ready!")
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: Katastrophen überleben