Menu
CoddyTech

El bucle de la ronda

Lección 4 de 18 del curso Juego de Roblox: Supervivencia ante desastres de Coddy.

Una partida por rondas nunca termina: sala de espera, ronda, sala de espera, ronda. Es un bucle while cuya condición siempre es verdadera:

while true do
	-- la cuenta regresiva de la sala de espera
	-- la ronda
end

Todo lo que hay dentro se ejecuta de nuevo desde el principio cada vez que llega a end. Como un bucle while true nunca termina, va al final del todo del script: el código que viniera después nunca se ejecutaría. En cada iteración también debe esperar en algún momento, o el bucle no dejaría que el resto del juego tuviera su turno y Roblox detendría el script.

La ronda también cuenta hacia atrás desde Settings.RoundLength, para que los jugadores vean cuánto tiempo tienen que sobrevivir.

challenge icon

Desafío

Fácil

Convierte la cuenta regresiva en el bucle del juego:

  1. Envuélvela en while true do ... end.
  2. Reemplaza Get ready! por la ronda: cuenta regresiva desde Settings.RoundLength hasta 1, con un segundo de intervalo, mostrando Time left: 15, Time left: 14 y así sucesivamente.

Pulsa Play y observa cómo transcurre una ronda y vuelve a comenzar la cuenta regresiva del vestíbulo; después, Check.

Pruébalo tú mismo

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

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

-- Cada jugador recibe Wins en la tabla de clasificación
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)

-- El panel de estado en el vestíbulo
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

-- La cuenta regresiva
for seconds = Settings.Intermission, 1, -1 do
	setStatus("Intermission: " .. seconds)
	task.wait(1)
end
setStatus("Get ready!")
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Juego de Roblox: Supervivencia ante desastres