Percorra o Caminho
Lição 2 de 18 do curso Jogo no Roblox: Defesa de Torres da Coddy.
Os inimigos percorrem um caminho marcado por peças invisíveis em workspace.Path.Waypoints, nomeadas de 1 a 6. GetChildren não garante uma ordem, então ordene-as primeiro pelo número no nome:
table.sort(waypoints, function(a, b)
return tonumber(a.Name) < tonumber(b.Name)
end)Cada inimigo é um modelo em ServerStorage.Enemies: clone-o, coloque-o acima do waypoint 1 com PivotTo e defina workspace.Enemies como seu parent.
Um Humanoid caminha com MoveTo, e seu evento MoveToFinished é disparado quando ele chega. Ele desiste após 8 segundos e é disparado com false, então um inimigo lento em um trecho longo recebe outro comando até chegar lá:
repeat
humanoid:MoveTo(waypoints[i].Position)
until humanoid.MoveToFinished:Wait()Caminhar leva tempo, então walkPath é executada em sua própria thread com task.spawn, e o script continua.
Desafio
Fácil- Obtenha
ServerStorageelocal enemies = workspace.Enemies. - Coloque os pontos de referência em uma lista e ordene-a por número.
- Escreva
walkPath(enemy): para os pontos de referência do 2 até o último, useMoveToaté queMoveToFinishedindique que ele chegou. Pare se o inimigo não estiver mais presente (not enemy.Parent). - Escreva
spawnEnemy(kind): clone o modelo, coloque-o 5 studs acima do ponto de referência 1, definaenemiescomo seu pai, iniciewalkPathcomtask.spawne retorne-o. - Gere um
"Zombie".
Pressione Jogar e observe-o caminhar. Depois, Verificar.
Experimente você mesmo
local Players = game:GetService("Players")
local Settings = require(game.ReplicatedStorage.Settings)
print("The base can take " .. Settings.BaseHealth .. " hits")
-- Todo jogador recebe Money no placar de líderes
Players.PlayerAdded:Connect(function(player)
local leaderstats = Instance.new("Folder")
leaderstats.Name = "leaderstats"
leaderstats.Parent = player
local money = Instance.new("IntValue")
money.Name = "Money"
money.Value = Settings.StartMoney
money.Parent = leaderstats
end)
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.