무작위 타워
Coddy의 Roblox 게임: 끝없는 타워 코스 레슨. 18개 중 3번째.
같은 스테이지로 타워를 다섯 번 쌓으면 재미가 없습니다. ServerStorage.Stages에는 Steps, KillBricks, Conveyor, VanishingSteps, Bounce, Spinner, Lasers의 일곱 종류가 있습니다. 층마다 무작위로 하나를 선택하세요:
local all = stages:GetChildren()
local stage = all[math.random(1, #all)]math.random(1, #all)은 1부터 스테이지 수까지의 정수이므로 모든 스테이지가 선택될 확률은 같습니다. 대부분은 아직 아무것도 하지 않습니다. 스피너, 벨트, 레이저는 다음 장에서 작동하기 시작합니다.
마지막 스테이지 위에는 등반이 끝나는 금색 패드인 ServerStorage.Finish가 놓입니다. stack은 이미 모든 Model을 올려놓으므로 Finish도 올려놓습니다.
챌린지
쉬움pickStage()를 작성하세요:stages의 임의의 자식 항목을 반환합니다.buildTower에서stages.Steps대신pickStage()를 쌓으세요.- 반복문이 끝난 후, 맨 위에
ServerStorage.Finish를 쌓으세요.
Play를 몇 번 눌러 보세요. 타워가 매번 달라집니다. 그런 다음 Check를 누르세요.
직접 해보기
local Players = game:GetService("Players")
local ServerStorage = game:GetService("ServerStorage")
local Settings = require(game.ReplicatedStorage.Settings)
local stages = ServerStorage.Stages
local tower = nil
print("Each tower has " .. Settings.StageCount .. " stages")
-- 모든 플레이어의 리더보드에 Wins가 추가됩니다
Players.PlayerAdded:Connect(function(player)
local leaderstats = Instance.new("Folder")
leaderstats.Name = "leaderstats"
leaderstats.Parent = player
local wins = Instance.new("IntValue")
wins.Name = "Wins"
wins.Parent = leaderstats
end)
-- 모델의 복사본을 타워 맨 위에 놓고, 복사본과 새로운 꼭대기 높이를 반환합니다
local function stack(template, bottom)
local copy = template:Clone()
local box, size = copy:GetBoundingBox()
local lift = bottom - (box.Position.Y - size.Y / 2)
copy:PivotTo(copy:GetPivot() + Vector3.new(0, lift, 0))
copy.Parent = tower
return copy, bottom + size.Y
end
-- Steps 스테이지로 타워를 만듭니다
local function buildTower()
tower = Instance.new("Model")
tower.Name = "Tower"
tower.Parent = workspace
local top = 0
for i = 1, Settings.StageCount do
local stage, newTop = stack(stages.Steps, top)
top = newTop
end
end
buildTower()
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.