Máy thả
Bài học 2 trên 22 trong khóa học Game Roblox: nhà máy tycoon của Coddy.
Tiền bắt đầu từ quặng. Hộp màu xám phía trên băng chuyền, workspace.Tycoon.Dropper, thả một mảnh nhỏ mỗi giây. Mỗi quặng lưu giá trị của nó dưới dạng thuộc tính (attribute), một giá trị có tên mà bạn có thể lưu trên bất kỳ instance nào:
ore:SetAttribute("Value", 25)
print(ore:GetAttribute("Value")) --> 25Việc thả quặng diễn ra liên tục, nên đây là một vòng lặp. Một vòng lặp có chờ sẽ làm những phần còn lại của script phải đợi, vì vậy vòng lặp của máy thả quặng chạy song song với phần còn lại, trong task.spawn, và dừng nếu máy thả quặng rời khỏi thế giới:
task.spawn(function()
while dropper:IsDescendantOf(workspace) do
dropOre(dropper)
task.wait(Settings.DropInterval)
end
end)Part mới sẽ không được neo trừ khi bạn neo nó, vì vậy quặng tự rơi ra khỏi máy thả quặng.
Thử thách
DễCho máy thả quặng.
- Gần đầu đoạn code:
local tycoon = workspace.Tycoon. - Viết
dropOre(dropper): tạo một Part có kích thước1, 1, 1, tên làOre, nằm dưới máy thả 2.5 studs, có thuộc tínhValuemang giá trịSettings.OreValue, trong workspace. - Viết
startDropper(dropper): trongtask.spawn, khi máy thả vẫn nằm trong workspace, hãy thả quặng sau mỗi khoảng thời gianSettings.DropInterval. Gọi hàm này vớitycoon.Dropper.
Nhấn Chơi: quặng màu xám chất thành đống bên dưới máy thả. Sau đó nhấn Kiểm tra.
Tự làm thử
local Players = game:GetService("Players")
local Settings = require(game.ReplicatedStorage.Settings)
print("Ore is worth " .. Settings.OreValue .. " Cash")
-- Mỗi người chơi có Cash 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 cash = Instance.new("IntValue")
cash.Name = "Cash"
cash.Parent = leaderstats
end)
-- Bài học 2: Đặt Dropper ở đây
Tất cả bài học trong Game Roblox: nhà máy tycoon
Tự luyện tập: Playground Roblox