الحلقات والمصفوفات

*This content is translated using AI (Beta) and may contain errors. To view this page in English, click here.

المصفوفات يمكن دمجها مع الحلقات، مثل while و for، لتكرار نفس الكود لكل قيمة مؤشرة. على سبيل المثال، نقل كل لاعب في مصفوفة إلى مكان جديد أو جعل مصفوفة من الأجزاء تشتعل.

لاستكشاف الدورة عبر المصفوفات، انشئ طريق جسر يختفي حيث يتم وضع الأجزاء في مصفوفة ثم جعلها تختفي واحدة تلو الأخرى.

الدوران عبر مصفوفة

للمشروع، ابحث عن أو أنشئ مجموعة من ثلاثة أجزاء لتجعلها تختفي. يجب أن تكون الأجزاء جميعها مثبتة.

  1. أنشئ ثلاثة أجزاء. سم الأجزاء بالترتيب الذي ينبغي أن تختفي به، Part1، Part2، Part3.

  2. في ServerScriptService، أدخل سكربت جديداً وأنشئ مصفوفة لتخزين الأجزاء.


    local pathArray = {
    }
  3. في سطر واحد لكل منها، اكتب أسماء الأجزاء بالترتيب الذي ينبغي أن تختفي به. استخدام سطر جديد لكل قيمة يجعل القراءة أسهل.


    local pathArray = {
    workspace.Part1,
    workspace.Part2,
    workspace.Part3,
    }

استخدم حلقة for مع مصفوفة

استخدم حلقة for للدورة عبر المصفوفة والتحكم في مدى سرعة اختفاء الأجزاء بناءً على ترتيب الأجزاء المؤشرة داخل المصفوفة.

  1. للتحكم في المدة التي تختفي فيها جزء ما بالثواني، أنشئ متغيراً يسمى VANISH_RATE. من الأفضل أن تبقيه على رقم صغير للاختبار.


    local VANISH_RATE = 1.5
    local pathArray = {
    workspace.Part1,
    workspace.Part2,
    workspace.Part3
    }
  2. أنشئ حلقة for مع ما يلي: البداية: partIndex = 1، وهو فهرس القيمة الأولى في المصفوفة. النهاية: #pathArray، حجم تلك المصفوفة.


    for partIndex = 1, #pathArray do
    end
  3. حتى تكون هناك فترة انتظار قبل اختفاء قطعة، أضف إلى الحلقة task.wait() باستخدام VANISH_RATE.


    for partIndex = 1, #pathArray do
    task.wait(VANISH_RATE)
    end
  4. لجعل قطعة تختفي، أنشئ متغيرًا جديدًا يسمى whichPart واجعله يساوي partsArray[partIndex]. ثم لجعل تلك القطعة تختفي، اضبط خاصية CanCollide الخاصة بها إلى false وTransparency إلى 1.


    for partIndex = 1, #pathArray do
    task.wait(VANISH_RATE)
    local whichPart = pathArray[partIndex]
    whichPart.CanCollide = false
    whichPart.Transparency = 1
    end
  5. تحقق من أن أجزاء الطريق تختفي مع مرور الوقت.

نصائح لتجاوز المشاكل

إذا لم يختفِ الجسر، تحقق من المشكلات المحتملة أدناه:

المشكلة: تختفي الأجزاء بسرعة كبيرة أو تختفي جميعها في البداية.

  • اعتمادًا على مدى سرعة تحميل شخصيتك في التجربة، قد تكون الأجزاء الأولى بالفعل غير مرئية. لمعالجة ذلك، أضف مهلة صغيرة، مثل task.wait(2)، في بداية السكربت.

برمجة الحلقة الثانية

الآن، الأجزاء تختفي إلى الأبد. لجعلها تعود، أنشئ حلقة for ثانية ستعبر عبر كل جزء وتجعل كل قطعة قابلة للمشي على الفور.

  1. بعد الحلقة الأولى، أضف task.wait() لإنشاء فترة توقف قصيرة قبل إعادة ظهور الطريق.


    for partIndex = 1, #pathArray do
    task.wait(VANISH_RATE)
    local whichPart = pathArray[partIndex]
    whichPart.CanCollide = false
    whichPart.Transparency = 1
    end
    task.wait(1)
  2. بمفردك، حاول برمجة حلقة for ثانية تجعل الطريق قابلًا للاستخدام مرة أخرى عن طريق تغيير خاصية CanCollide لكل جزء إلى true وTransparency إلى 0. عند الانتهاء، تحقق من عملك مقابل الكود أدناه.


    -- إعادة تعيين الطريق عن طريق جعل جميع الأجزاء قابلة للمشي مرة أخرى
    for partIndex = 1, #pathArray do
    local whichPart = pathArray[partIndex]
    whichPart.CanCollide = true
    whichPart.Transparency = 0
    end
  3. اختبر المشروع للتأكد من أنه بمجرد اختفاء جميع الأجزاء، فإنها تعود.

التكرار باستخدام حلقة while

الأجزاء تختفي وتظهر مرة واحدة فقط. لجعل الكود يستمر في التكرار، قم بتعشيش جميع الكود داخل حلقة while.

  1. في أسفل السكربت، أنشئ حلقة جديدة while true do. ثم، انقل كلا الحلقتين for إلى داخل حلقة while.


    while true do
    -- جعل جزء يختفي من المصفوفة بالترتيب
    for partIndex = 1, #pathArray do
    task.wait(VANISH_RATE)
    local whichPart = pathArray[partIndex]
    whichPart.CanCollide = false
    whichPart.Transparency = 1
    end
    -- انتظر ثانية قبل إعادة ظهور الطريق
    task.wait(1)
    -- إعادة تعيين الطريق عن طريق جعل جميع الأجزاء قابلة للمشي مرة أخرى
    for partIndex = 1, #pathArray do
    local whichPart = pathArray[partIndex]
    whichPart.CanCollide = true
    whichPart.Transparency = 0
    end
    end
  2. تحقق من أنه بمجرد اختفاء جميع الأجزاء، تعود الظهور.

يمكنك تحميل نسخة نهائية من المشروع.

الكود المكتمل

local VANISH_RATE = 1.0
local pathArray = {
workspace.Part1,
workspace.Part2,
workspace.Part3,
}
while true do
-- جعل جزء يختفي من المصفوفة بالترتيب
for partIndex = 1, #pathArray do
task.wait(VANISH_RATE)
local whichPart = pathArray[partIndex]
whichPart.CanCollide = false
whichPart.Transparency = 1
end
-- انتظر ثانية قبل إعادة ظهور الطريق
task.wait(1.0)
-- إعادة تعيين الطريق عن طريق جعل جميع الأجزاء قابلة للمشي مرة أخرى
for partIndex = 1, #pathArray do
local whichPart = pathArray[partIndex]
whichPart.CanCollide = true
whichPart.Transparency = 0
end
end

المصفوفات و ipairs()

ipairs() تستخدم مع المصفوفات. الحرف "i" في ipairs() يدل على "الفهرس". يمكن استخدام ipairs() لتكرار عملية بسرعة على الكثير من الكائنات، مثل، على سبيل المثال، مجلد مليء بالأجزاء.

سيتم عرض ذلك من خلال إضافة جزيئات بسرعة إلى مجلد كامل من الأجزاء.

  1. في Workspace، أنشئ مجلدًا يسمى PartsFolder. أضف أي عدد من الأجزاء كما تريد.

  2. في ServerScriptService، أنشئ سكربت جديدًا وأشر إلى المجلد.

  3. استخدم GetChildren() للحصول تلقائيًا على مصفوفة تحتوي على جميع الكائنات في المجلد.


    local partsFolder = workspace.PartsFolder
    -- يحصل على مصفوفة تحتوي على الأجزاء في PartsFolder
    local partsArray = partsFolder:GetChildren()
  4. استخدم in ipairs(ArrayToUse) مع حلقة for للدوران عبر partsArray وإضافة جزيئات.

    الكود المكتمل

    -- يحصل على مصفوفة تحتوي على الأجزاء في PartsFolder
    local partsArray = partsFolder:GetChildren()
    -- يضيف جزيئات إلى كل جزء في المصفوفة
    for index, part in ipairs(partsArray) do
    local particles = Instance.new("ParticleEmitter")
    particles.Parent = part
    end

اختبر اللعبة وشاهد الجزيئات تطفو من كل جزء في المجلد.

ملخص

يمكن دمج الحلقات مع المصفوفات للعمل مع أي عدد من القيم بسرعة. إذا كنت تريد التحكم الدقيق فيما يحدث لبعض الأجزاء وفي أي ترتيب، يجب أن تكون المصفوفة مشفرة صلبًا بقيم معينة.

للاستخدام مع العديد من الأجزاء حيث لا يهم الترتيب، يمكن أن تخلق GetChildren() مصفوفة من أبناء كائن. من خلال استخدام ipairs()، يمكن تكرار القائمة بسرعة دون معرفة حجم المصفوفة.

©2026 شركة Roblox Corporation. تُعد منصّة Roblox، وشعار Roblox وشعار "توسيع حدود المخيلة"، من ضمن علاماتنا التجارية المسجّلة وغير المسجّلة في الولايات المتحدة وبلدان أخرى.