경로 따라가기
Coddy의 Roblox 게임: 타워 디펜스 코스 레슨. 18개 중 2번째.
적들은 workspace.Path.Waypoints에 있는 보이지 않는 파트로 표시된 경로를 따라 걷습니다. 파트의 이름은 1부터 6까지입니다. GetChildren은 순서를 보장하지 않으므로, 먼저 이름에 있는 숫자를 기준으로 정렬하세요:
table.sort(waypoints, function(a, b)
return tonumber(a.Name) < tonumber(b.Name)
end)각 적은 ServerStorage.Enemies에 있는 모델입니다. 이를 복제하고, PivotTo로 웨이포인트 1 위에 배치한 다음, workspace.Enemies를 부모로 설정하세요.
Humanoid는 MoveTo로 이동하며, 도착하면 MoveToFinished 이벤트가 발생합니다. 8초가 지나면 포기하고 false와 함께 이벤트를 발생시키므로, 긴 구간에서 느리게 이동하는 적은 도착할 때까지 다시 이동 명령을 받습니다:
repeat
humanoid:MoveTo(waypoints[i].Position)
until humanoid.MoveToFinished:Wait()이동에는 시간이 걸리므로 walkPath는 task.spawn을 사용해 자체 스레드에서 실행되고, 스크립트는 계속 진행됩니다.
챌린지
쉬움ServerStorage와local enemies = workspace.Enemies를 가져옵니다.- 웨이포인트를 목록에 넣고 숫자 순으로 정렬합니다.
walkPath(enemy)를 작성합니다. 웨이포인트 2번부터 마지막까지, 도착했다고MoveToFinished가 알릴 때까지MoveTo를 실행합니다. 적이 사라지면(not enemy.Parent) 중지합니다.spawnEnemy(kind)를 작성합니다. 모델을 복제하고, 웨이포인트 1번보다 5 스터드 위에 배치한 다음,enemies를 부모로 설정하고,task.spawn으로walkPath를 시작한 뒤 반환합니다."Zombie"하나를 생성합니다.
Play를 눌러 걷는 모습을 지켜보세요. 그런 다음 Check를 누르세요.
직접 해보기
local Players = game:GetService("Players")
local Settings = require(game.ReplicatedStorage.Settings)
print("The base can take " .. Settings.BaseHealth .. " hits")
-- 모든 플레이어는 리더보드에 Money를 받습니다
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)
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.