לולאת הסיבוב
שיעור 4 מתוך 18 בקורס משחק Roblox: הישרדות באסונות של Coddy.
משחק עם סבבים לא נגמר לעולם: לובי, סבב, לובי, סבב. זוהי לולאת while שהתנאי שלה תמיד true:
while true do
-- הספירה לאחור בלובי
-- הסיבוב
endכל מה שנמצא בתוכה רץ שוב מההתחלה בכל פעם שהוא מגיע ל־end. מכיוון שלולאת while true לעולם לא מסתיימת, היא נמצאת ממש בתחתית הסקריפט: קוד שאחריה לעולם לא ירוץ. בכל מעבר בלולאה צריך גם להמתין במקום כלשהו, אחרת הלולאה לא תיתן לשאר המשחק תור, ו-Roblox יעצור את הסקריפט.
גם הסבב סופר לאחור, מ־Settings.RoundLength, כדי שהשחקנים יראו כמה זמן עליהם לשרוד.
אתגר
קלהפוך את הספירה לאחור ללולאה של המשחק:
- עטוף אותה ב־
while true do ... end. - החלף את
Get ready!בסיבוב: ספור לאחור מ־Settings.RoundLengthעד 1, בהפרש של שנייה, והצגTime left: 15,Time left: 14וכן הלאה.
לחץ על הפעל וצפה בסיבוב חולף ובספירה לאחור של הלובי מתחילה שוב, ואז לחץ על בדיקה.
נסו בעצמכם
local Players = game:GetService("Players")
local Settings = require(game.ReplicatedStorage.Settings)
print("Rounds last " .. Settings.RoundLength .. " seconds")
-- כל שחקן מקבל 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 gui = Instance.new("SurfaceGui")
gui.Parent = workspace.StatusBoard
local status = Instance.new("TextLabel")
status.Name = "Status"
status.Size = UDim2.fromScale(1, 1)
status.BackgroundColor3 = Color3.fromRGB(25, 25, 35)
status.TextColor3 = Color3.fromRGB(255, 255, 255)
status.TextScaled = true
status.Text = "Welcome to Disaster Survival!"
status.Parent = gui
local function setStatus(text)
status.Text = text
end
-- הספירה לאחור
for seconds = Settings.Intermission, 1, -1 do
setStatus("Intermission: " .. seconds)
task.wait(1)
end
setStatus("Get ready!")
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.