Menu
CoddyTech

מגדל אקראי

שיעור 3 מתוך 18 בקורס משחק Roblox: מגדל אינסופי של Coddy.

מגדל מאותו שלב חמש פעמים הוא לא כיף. ב-ServerStorage.Stages יש שבעה סוגים: מדרגות, לבני הרג, מסוע, מדרגות נעלמות, קפיצה, סביבון ולייזרים. בחרו אחד באקראי לכל קומה:

local all = stages:GetChildren()
local stage = all[math.random(1, #all)]

math.random(1, #all) מחזירה מספר שלם מ-1 ועד מספר השלבים, כך שלכל שלב יש סיכוי זהה. רובם עדיין לא עושים כלום: הסביבונים, המסועים והלייזרים שלהם יתעוררו לחיים בפרק הבא.

מעל השלב האחרון מניחים את ServerStorage.Finish, משטח זהב שבו מסתיימת הטיפוס. stack כבר מרים כל Model, ולכן הוא מרים גם את Finish.

challenge icon

אתגר

קל
  1. כתבו pickStage(): החזירו ילד אקראי של stages.
  2. בתוך buildTower, ערמו את pickStage() במקום את stages.Steps.
  3. אחרי הלולאה, ערמו את 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()
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה משחק Roblox: מגדל אינסופי