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
endTodo 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.
Desafío
FácilConvierte la cuenta regresiva en el bucle del juego:
- Envuélvela en
while true do ... end. - Reemplaza
Get ready!por la ronda: cuenta regresiva desdeSettings.RoundLengthhasta 1, con un segundo de intervalo, mostrandoTime left: 15,Time left: 14y 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!")
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.