حلقة الجولة
الدرس 4 من 18 في دورة لعبة Roblox: النجاة من الكوارث على Coddy.
لا تنتهي لعبة الجولات أبدًا: ردهة، جولة، ردهة، جولة. هذه حلقة while يكون شرطها صحيحًا دائمًا:
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وهكذا.
اضغط على Play وشاهد جولة كاملة، ثم يبدأ العدّ التنازلي في الردهة من جديد، وبعدها اضغط على Check.
جرّب بنفسك
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!")
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.