Menu
CoddyTech

Ikuti Jalurnya

Pelajaran 2 dari 18 dalam kursus Game Roblox: Tower Defense di Coddy.

Musuh berjalan di jalur yang ditandai oleh bagian-bagian tak terlihat di workspace.Path.Waypoints, yang diberi nama 1 hingga 6. GetChildren tidak menjamin urutan, jadi urutkan bagian-bagian itu berdasarkan angka dalam namanya terlebih dahulu:

table.sort(waypoints, function(a, b)
	return tonumber(a.Name) < tonumber(b.Name)
end)

Setiap musuh adalah model di ServerStorage.Enemies: klon model itu, letakkan di atas waypoint 1 dengan PivotTo, lalu jadikan workspace.Enemies sebagai parent-nya.

Humanoid berjalan dengan MoveTo, dan event MoveToFinished-nya aktif saat tiba. Humanoid menyerah setelah 8 detik dan memicu event dengan false, jadi musuh yang lambat di jalur yang panjang akan diperintahkan berjalan lagi hingga tiba:

repeat
	humanoid:MoveTo(waypoints[i].Position)
until humanoid.MoveToFinished:Wait()

Berjalan membutuhkan waktu, jadi walkPath berjalan di thread-nya sendiri dengan task.spawn, sementara skrip terus berjalan.

challenge icon

Tantangan

Mudah
  1. Dapatkan ServerStorage dan local enemies = workspace.Enemies.
  2. Masukkan waypoint ke dalam list, lalu urutkan berdasarkan angka.
  3. Tulis walkPath(enemy): untuk waypoint 2 hingga yang terakhir, gunakan MoveTo sampai MoveToFinished menyatakan bahwa musuh telah tiba. Hentikan jika musuh sudah tidak ada (not enemy.Parent).
  4. Tulis spawnEnemy(kind): clone modelnya, letakkan 5 studs di atas waypoint 1, jadikan enemies sebagai parent-nya, mulai walkPath dengan task.spawn, lalu kembalikan modelnya.
  5. Spawn satu "Zombie".

Tekan Mainkan dan lihat musuh berjalan. Lalu tekan Periksa.

Coba sendiri

local Players = game:GetService("Players")
local Settings = require(game.ReplicatedStorage.Settings)

print("The base can take " .. Settings.BaseHealth .. " hits")

-- Setiap pemain mendapat Money di papan peringkat
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)
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Game Roblox: Tower Defense

Latihan sendiri: Playground Roblox