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
endAlles 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.
Aufgabe
EinfachMach den Countdown zur Spielschleife:
- Umschließe ihn mit
while true do ... end. - Ersetze
Get ready!durch die Runde: Zähle vonSettings.RoundLengthbis 1 herunter, im Abstand von einer Sekunde, und zeigeTime left: 15,Time left: 14und 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!")
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.