Menu
CoddyTech

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
end

Mọ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.

challenge icon

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.

  1. Bọc bộ đếm ngược trong while true do ... end.
  2. 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

Tự luyện tập: Playground Roblox