Vòng lặp của vòng chơi
Bài học 4 trên 20 trong khóa học Trò chơi Roblox: sinh tồn trước thảm họa của Coddy.
Trò chơi theo vòng không bao giờ kết thúc: sảnh chờ, vòng chơi, sảnh chờ, vòng chơi. Đó là vòng lặp while có điều kiện luôn đúng:
while true do
-- Đếm ngược trong phòng chờ
-- Vòng chơi
endMọi thứ bên trong chạy lại từ đầu mỗi khi đến end. Vì vòng lặp while true không bao giờ kết thúc, nó nằm ở cuối cùng của tập lệnh: code phía sau sẽ không bao giờ chạy. Mỗi lượt chạy cũng phải chờ ở đâu đó, nếu không vòng lặp sẽ không nhường lượt cho phần còn lại của trò chơi và Roblox sẽ dừng tập lệnh.
Vòng chơi cũng đếm ngược từ Settings.RoundLength, để người chơi biết họ còn phải sống sót trong bao lâu.
Thử thách
DễBiến bộ đếm ngược thành một vòng lặp trò chơi không bao giờ kết thúc.
- Bọc bộ đếm ngược trong
while true do ... end. - Thay
Get ready!bằng vòng đấu: đếm ngược từSettings.RoundLengthđến 1, mỗi giây giảm một lần, hiển thị"Time left: " .. seconds.
Nhấn Chơi: Time left đếm ngược từ 15, sau đó bộ đếm ngược ở sảnh bắt đầu lại. Tiếp theo, nhấn Kiểm tra.
Tự làm thử
local Players = game:GetService("Players")
local Settings = require(game.ReplicatedStorage.Settings)
print("Rounds last " .. Settings.RoundLength .. " seconds")
-- Mỗi người chơi đều có Wins trên bảng xếp hạng
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)
-- Bảng trạng thái trong sảnh chờ
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
-- Bài học 4: Vòng lặp của mỗi vòng chơi nằm ở đây
-- Đếm ngược thời gian
for seconds = Settings.Intermission, 1, -1 do
setStatus("Intermission: " .. seconds)
task.wait(1)
end
setStatus("Get ready!")
Tất cả bài học trong Trò chơi Roblox: sinh tồn trước thảm họa
4Biến mọi thứ thành trò chơi
Hai bản đồ2Bản đồ và người chơi
Tải bản đồTự luyện tập: Playground Roblox