Tải bản đồ
Bài học 5 trên 20 trong khóa học Trò chơi Roblox: sinh tồn trước thảm họa của Coddy.
Các vòng diễn ra trên một bản đồ. Các bản đồ nằm trong ServerStorage, một dịch vụ có nội dung không nằm trong thế giới: không ai nhìn thấy hay chạm vào chúng. Mở ServerStorage.Maps trong sơ đồ Explorer, bạn sẽ tìm thấy Island.
Mỗi vòng tạo một bản sao của bản đồ trong không gian làm việc bằng Clone, rồi xóa bản đồ đó sau vòng chơi bằng Destroy. Bản gốc vẫn ở ServerStorage, nguyên vẹn và sẵn sàng cho vòng tiếp theo:
local map = ServerStorage.Maps.Island:Clone()
map.Name = "Map"
map.Parent = workspace
-- ... vòng chơi ...
map:Destroy()Bản sao giữ nguyên vị trí của bản gốc, nên hòn đảo xuất hiện ở nơi nó được xây dựng, cách xa sảnh chờ. Nếu di chuyển bản gốc thay vì sao chép, cách đó chỉ hiệu quả một lần: sau lần Destroy đầu tiên, sẽ không còn Island cho vòng hai.
Thử thách
Trung bìnhTải Island cho mỗi vòng chơi.
- Ở đầu chương trình, lấy
ServerStoragebằnggame:GetService. - Sau khi bộ đếm ngược ở sảnh kết thúc, sao chép
ServerStorage.Maps.Islandvàolocal map, đặt tên cho nó làMaprồi đặt nó vào workspace. - Khi bộ đếm ngược của vòng chơi kết thúc, gọi
map:Destroy().
Nhấn Chơi: khi vòng chơi bắt đầu, hòn đảo xuất hiện ở phía xa sảnh, và biến mất khi vòng chơi kết thúc. Sau đó 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 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 ở 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
-- Vòng lặp của các vòng chơi
while true do
for seconds = Settings.Intermission, 1, -1 do
setStatus("Intermission: " .. seconds)
task.wait(1)
end
-- Bài học 5: thêm Load a Map vào đây
for seconds = Settings.RoundLength, 1, -1 do
setStatus("Time left: " .. seconds)
task.wait(1)
end
end
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