O Gerador
Lição 2 de 22 do curso Jogo no Roblox: Magnata da Fábrica da Coddy.
O dinheiro começa com o minério. A caixa cinza sobre a esteira, workspace.Tycoon.Dropper, solta uma peça pequena a cada segundo. Cada minério carrega o seu valor como um atributo, um valor nomeado que você pode armazenar em qualquer instância:
ore:SetAttribute("Value", 25)
print(ore:GetAttribute("Value")) --> 25A queda acontece para sempre, então é um loop. Um loop que espera bloquearia o restante do script, então o loop do dropper é executado junto com ele, em task.spawn, e para se o dropper sair do mundo:
task.spawn(function()
while dropper:IsDescendantOf(workspace) do
dropOre(dropper)
task.wait(Settings.DropInterval)
end
end)Uma nova Part não fica ancorada, a menos que você a ancore, então o minério cai do dropper por conta própria.
Desafio
FácilFaça o dropper derrubar minério.
- Perto do início:
local tycoon = workspace.Tycoon. - Escreva
dropOre(dropper): uma Part de1, 1, 1chamadaOre, 2.5 studs abaixo do dropper, com um atributoValuedefinido comoSettings.OreValue, no workspace. - Escreva
startDropper(dropper): emtask.spawn, enquanto o dropper estiver no workspace, derrube minério a cadaSettings.DropInterval. Chame essa função paratycoon.Dropper.
Pressione “Jogar”: o minério cinza se acumula embaixo do dropper. Depois, pressione “Verificar”.
Experimente você mesmo
local Players = game:GetService("Players")
local Settings = require(game.ReplicatedStorage.Settings)
print("Ore is worth " .. Settings.OreValue .. " Cash")
-- Todo jogador recebe Cash no placar de líderes
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)
-- Lição 2: O Dropper vai aqui
Todas as lições de Jogo no Roblox: Magnata da Fábrica
Pratique por conta própria: Playground de Roblox