La boucle de manche
Leçon 4 sur 18 du cours Jeu Roblox : Survivre aux catastrophes de Coddy.
Une partie enchaîne les manches sans fin : lobby, manche, lobby, manche. C’est une boucle while dont la condition est toujours vraie :
while true do
-- le compte à rebours du hall d'attente
-- la manche
endTout ce qu’elle contient est réexécuté depuis le début chaque fois qu’elle atteint end. Comme une boucle while true ne se termine jamais, elle se trouve tout en bas du script : le code placé après elle ne s’exécuterait jamais. À chaque passage, il faut aussi attendre quelque part, sinon la boucle ne laisserait jamais le reste du jeu jouer son tour et Roblox arrêterait le script.
Le compte à rebours de la manche part aussi de Settings.RoundLength, pour que les joueurs voient combien de temps ils doivent survivre.
Défi
FacileTransforme le compte à rebours en boucle du jeu :
- Enveloppe-le dans
while true do ... end. - Remplace
Get ready!par le round : compte à rebours deSettings.RoundLengthà 1, à une seconde d’intervalle, en affichantTime left: 15,Time left: 14, et ainsi de suite.
Appuie sur Play et regarde un round se dérouler, puis le compte à rebours du lobby recommencer, puis clique sur Check.
Essayez vous-même
local Players = game:GetService("Players")
local Settings = require(game.ReplicatedStorage.Settings)
print("Rounds last " .. Settings.RoundLength .. " seconds")
-- Chaque joueur reçoit des Wins dans le classement
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)
-- Le panneau d’état dans le hall
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
-- Le compte à rebours
for seconds = Settings.Intermission, 1, -1 do
setStatus("Intermission: " .. seconds)
task.wait(1)
end
setStatus("Get ready!")
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.