Recorre el camino
Lección 2 de 18 del curso Juego de Roblox: defensa de torres de Coddy.
Los enemigos recorren un camino marcado por partes invisibles en workspace.Path.Waypoints, llamadas 1 a 6. GetChildren no garantiza ningún orden, así que primero ordénalas por el número de su nombre:
table.sort(waypoints, function(a, b)
return tonumber(a.Name) < tonumber(b.Name)
end)Cada enemigo es un modelo en ServerStorage.Enemies: clónalo, colócalo sobre el waypoint 1 con PivotTo y asígnale como padre workspace.Enemies.
Un Humanoid camina con MoveTo, y su evento MoveToFinished se activa cuando llega. Se rinde después de 8 segundos y se activa con false, así que se vuelve a enviar a un enemigo lento en un tramo largo hasta que llegue:
repeat
humanoid:MoveTo(waypoints[i].Position)
until humanoid.MoveToFinished:Wait()Caminar lleva tiempo, así que walkPath se ejecuta en su propio hilo con task.spawn, y el script continúa.
Desafío
Fácil- Obtén
ServerStorageylocal enemies = workspace.Enemies. - Pon los puntos de referencia en una lista y ordénala por número.
- Escribe
walkPath(enemy): para los puntos de referencia desde el 2 hasta el último, muévelo conMoveTohasta queMoveToFinishedindique que llegó. Detente si el enemigo ya no está (not enemy.Parent). - Escribe
spawnEnemy(kind): clona el modelo, colócalo 5 studs por encima del punto de referencia 1, asígnalo como hijo deenemies, iniciawalkPathcontask.spawny devuélvelo. - Genera un
"Zombie".
Pulsa Jugar y observa cómo camina. Después, pulsa Comprobar.
Pruébalo tú mismo
local Players = game:GetService("Players")
local Settings = require(game.ReplicatedStorage.Settings)
print("The base can take " .. Settings.BaseHealth .. " hits")
-- Cada jugador recibe Money en la tabla de clasificación
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 lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.