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

*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 وشعار "توسيع حدود المخيلة"، من ضمن علاماتنا التجارية المسجّلة وغير المسجّلة في الولايات المتحدة وبلدان أخرى.