Menu
CoddyTech

Pętla rundy

Lekcja 4 z 18 w kursie Gra Roblox: Przetrwanie w katastrofach w Coddy.

Gra w rundach nigdy się nie kończy: lobby, runda, lobby, runda. To while pętla, której warunek jest zawsze prawdziwy:

while true do
	-- odliczanie w lobby
	-- runda
end

Wszystko, co znajduje się wewnątrz, uruchamia się ponownie od początku za każdym razem, gdy kod dotrze do end. Ponieważ pętla while true nigdy się nie kończy, umieszcza się ją na samym końcu skryptu: kod znajdujący się po niej nigdy by się nie uruchomił. Każde przejście musi też gdzieś czekać, bo inaczej pętla nigdy nie oddałaby kolejki reszcie gry, a Roblox zatrzymałby skrypt.

Runda również odlicza czas, zaczynając od Settings.RoundLength, aby gracze widzieli, jak długo muszą przetrwać.

challenge icon

Wyzwanie

Łatwy

Zamień odliczanie w pętlę gry:

  1. Umieść je w while true do ... end.
  2. Zastąp Get ready! rundą: odliczaj od Settings.RoundLength do 1, co sekundę wyświetlając Time left: 15, Time left: 14 i tak dalej.

Naciśnij Graj i obserwuj, jak mija runda, a odliczanie w lobby zaczyna się ponownie, a następnie kliknij Sprawdź.

Spróbuj swoich sił

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

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

-- Każdy gracz otrzymuje Wins w tabeli wyników
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)

-- Tablica statusu w 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

-- Odliczanie
for seconds = Settings.Intermission, 1, -1 do
	setStatus("Intermission: " .. seconds)
	task.wait(1)
end
setStatus("Get ready!")
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Gra Roblox: Przetrwanie w katastrofach