ドロッパー
Coddyの「Robloxゲーム:工場経営タイクーン」コースのレッスン 2/18。
お金は鉱石から始まります。コンベアの上にある灰色のボックス、workspace.Tycoon.Dropperは、毎秒小さなパーツを落とします。それぞれの鉱石は、属性としてその価値を持ちます。属性とは、任意のインスタンスに保存できる名前付きの値です。
ore:SetAttribute("Value", 10)
print(ore:GetAttribute("Value")) --> 10落下は永遠に続くため、これはループです。待機するループはスクリプトの残りの処理を止めてしまうので、ドロッパーのループは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のPartを作成し、名前をOre、色を灰色(Color3.fromRGB(150, 150, 160))にして、ドロッパーの2.5 studs下に配置します。属性ValueをSettings.OreValueに設定し、workspaceを親にします。startDropper(dropper)を記述します:task.spawn内で、ドロッパーがworkspace内にある間、鉱石を落としてSettings.DropInterval秒待ちます。startDropper(tycoon.Dropper)を呼び出します。
Playを押すと、ドロッパーの下に鉱石が積み上がります。その後、Checkを押します。
自分で試してみよう
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)
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。