Suivre le chemin
Leçon 2 sur 18 du cours Jeu Roblox : Tower Defense de Coddy.
Les ennemis suivent un chemin marqué par des éléments invisibles dans workspace.Path.Waypoints, nommés de 1 à 6. GetChildren ne garantit aucun ordre : commence donc par les trier selon le nombre indiqué dans leur nom :
table.sort(waypoints, function(a, b)
return tonumber(a.Name) < tonumber(b.Name)
end)Chaque ennemi est un modèle dans ServerStorage.Enemies : clone-le, place-le au-dessus du waypoint 1 avec PivotTo, puis définis workspace.Enemies comme parent.
Un Humanoid se déplace avec MoveTo, et son événement MoveToFinished se déclenche lorsqu'il arrive. Il abandonne après 8 secondes et se déclenche avec false, donc un ennemi lent sur un long tronçon reçoit à nouveau l'ordre jusqu'à ce qu'il arrive :
repeat
humanoid:MoveTo(waypoints[i].Position)
until humanoid.MoveToFinished:Wait()La marche prend du temps, donc walkPath s'exécute dans son propre thread avec task.spawn, et le script poursuit son exécution.
Défi
Facile- Récupère
ServerStorageetlocal enemies = workspace.Enemies. - Mets les points de passage dans une liste et trie-la par numéro.
- Écris
walkPath(enemy): pour les points de passage de 2 jusqu’au dernier, fais-lui utiliserMoveTojusqu’à ce queMoveToFinishedindique qu’il est arrivé. Arrête-toi si l’ennemi a disparu (not enemy.Parent). - Écris
spawnEnemy(kind): clone le modèle, place-le 5 studs au-dessus du point de passage 1, définisenemiescomme parent, démarrewalkPathavectask.spawnet renvoie-le. - Fais apparaître un
"Zombie".
Appuie sur Jouer et regarde-le marcher. Puis clique sur Vérifier.
Essayez vous-même
local Players = game:GetService("Players")
local Settings = require(game.ReplicatedStorage.Settings)
print("The base can take " .. Settings.BaseHealth .. " hits")
-- Chaque joueur reçoit Money dans le classement
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)
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.