投放器
Coddy Roblox 游戏:工厂大亨 课程的第 2 课,共 22 课。
赚钱要从矿石开始。传送带上方的灰色箱子 workspace.Tycoon.Dropper 每秒掉落一块小零件。每块矿石都带有一个 属性,用于存储它的价值。属性是一个命名值,你可以存储在任何实例上:
ore:SetAttribute("Value", 25)
print(ore:GetAttribute("Value")) --> 25矿石会一直掉落,所以这里需要一个循环。等待中的循环会阻塞脚本的其余部分,因此掉落器的循环会通过 task.spawn 并行运行;如果掉落器离开了世界,循环就会停止:
task.spawn(function()
while dropper:IsDescendantOf(workspace) do
dropOre(dropper)
task.wait(Settings.DropInterval)
end
end)新建的 Part 默认没有锚定,因此矿石会自行从掉落器中落下。
挑战
简单让投放器投放矿石。
- 在靠近顶部的位置写入:
local tycoon = workspace.Tycoon。 - 编写
dropOre(dropper):创建一个大小为1, 1, 1、名为Ore的 Part,放在投放器下方 2.5 studs 处,并将Value属性设为Settings.OreValue,放入 workspace。 - 编写
startDropper(dropper):在task.spawn中,只要投放器还在 workspace 中,就每隔Settings.DropInterval投放一次矿石。对tycoon.Dropper调用它。
按“开始”:灰色矿石会堆积在投放器下方。然后按“检查”。
亲手试试
local Players = game:GetService("Players")
local Settings = require(game.ReplicatedStorage.Settings)
print("Ore is worth " .. Settings.OreValue .. " Cash")
-- 每位玩家的排行榜上都会显示 Cash
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)
-- 第 2 课:在这里添加 Dropper
Roblox 游戏:工厂大亨中的所有课
自己练习: Roblox 在线编辑器