لممارسة حلقات for، ستقوم بإنشاء مصباح يتوهج تدريجياً بشكل أكثر سطوعًا ثم يتلاشى مع مرور الوقت. يمكن بعد ذلك تطبيق هذا السكربت على أي أضواء أخرى في مشروع، سواء كانت ضوء شارع أو كريستالة متوهجة.
إعداد الجزء والسكربت
سيكون المصباح جزءًا مع ضوء وسكربت مرفقين.
لتسهيل رؤية الضوء، قم بتغيير العالم ثلاثي الأبعاد إلى وقت الليل. في مستكشف ⟩ الإضاءة، قم بتغيير ClockTime إلى 0.

أنشئ جزءًا جديدًا أو نموذجًا باسم مصباح.

اختر المصباح، وأضف ضوءًا، مثل PointLight أو SpotLight. ستعمل مع خاصية السطوع للضوء لإنشاء مصباح متوهج.

في المصباح، أضف سكربتًا جديدًا باسم GlowScript. في هذا السكربت، أنشئ متغيرات لتخزين جزء المصباح وضوء النقطة.
local lightPart = script.Parentlocal light = lightPart.SpotLightبعد ذلك، أنشئ متغيرًا للاحتفاظ بمدى تغير سطوع الضوء في كل مرة تعمل فيها الحلقة. ثم، أضف متغيرًا آخر لعدد الثواني التي ستنتظرها الحلقات قبل أن تعمل مرة أخرى.
-- مدى تغير سطوع الضوء في كل مرةlocal brightnessChange = 1-- مدى تكرار تغير سطوع الضوء بالثوانيlocal timeChange = 1
اجعل المصباح يتوهج
سيستخدم المصباح حلقتين for، واحدة تعد للأعلى لجعل المصباح أكثر سطوعًا، وواحدة تعد للأسفل لتخفيفه. ستحتوي كل حلقة for على متغير تحكم يسمى currentBrightness. بهذه الطريقة، كلما ارتفع وانخفض متغير التحكم في الحلقة for، سيتغير سطوع الضوء أيضًا.
الحلقة الأولى (زيادة الضوء)
تذكر، تبدأ حلقة for بالكلمة الرئيسية for متبوعة بمتغير تحكم. سيقوم هذا السكربت بتعيين قيمة السطوع للضوء إلى القيمة في متغير التحكم.
قم ببرمجة حلقة for باستخدام القيم التالية. تذكر أن تفصل بين متغير التحكم وقيم النهاية بفاصلة.
- متغير التحكم: currentBrightness
- قيمة البداية: 0
- قيمة النهاية: 5
- قيمة الزيادة: brightnessChange
local timeChange = 1for currentBrightness = 0, 5, brightnessChange doendفي نطاق حلقة for، قم بتعيين خاصية السطوع للضوء إلى القيمة في متغير التحكم عن طريق كتابة light.Brightness = currentBrightness. الآن، عندما تعمل الحلقة، سيصبح الضوء أكثر سطوعًا.
for currentBrightness = 0, 5, brightnessChange dolight.Brightness = currentBrightnessendحتى لا يحدث التغيير دفعة واحدة، أضف دالة انتظار باستخدام القيمة في timeChange.
for currentBrightness = 0, 5, brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endقم بتشغيل اللعبة لترى الضوء يزداد سطوعه كل ثانية.
إذا لم تتمكن من رؤية تغير السطوع مع مرور الوقت في الحلقة الأولى:
- تأكد من أن light.Brightness = currentBrightness موجودة بين do و end في حلقتك for.
- تحقق من أن timeChange لا يقل عن 1 أو أعلى. الأرقام الأصغر ستجعل السطوع يتغير بشكل أسرع، ولكن سيكون من الصعب رؤيته مع مرور الوقت.
- تأكد من أن السطر الأول من حلقتك for يحتوي على فاصلتين إجماليتين تفصلان بين متغير التحكم، قيمة النهاية، وقيمة الزيادة.
الحلقة الثانية (تخفيض الضوء)
لتخفيف الضوء، استخدم حلقة for ثانية. ستكون قيم هذه الحلقة معكوسة بحيث يبدأ الضوء ساطعًا وكل ثانية، يصبح أضعف.
قم ببرمجة حلقة for ثانية تقلل السطوع مع مرور الوقت. الحل موجود في صندوق الكود أدناه. استخدم القيم التالية:
- متغير التحكم - currentBrightness تم تعيينه إلى 5، نهاية الحلقة الأخيرة.
- النهاية - 0، لإيقاف تشغيل الضوء.
- الزيادة - اطرح brightnessChange.
-- الحلقة الثانية تخفف من سطوع المصباحfor currentBrightness = 5, 0, -brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endقم بتشغيل لعبتك؛ يجب أن ترى الضوء يزداد سطوعًا ثم يتلاشى.
اجعل الضوء يتكرر
في الوقت الحالي، يضيء الضوء وينطفئ مرة واحدة فقط. لجعل المصباح يتوهج باستمرار، سيتم وضع حلقات for داخل حلقة while متكررة.
تحت حلقات for، أنشئ حلقة while جديدة.
while true doendضع كلا الحلقتين for داخل حلقة while. قم بزيادة المسافة البادئة للحلقات for لتسهيل تمييزها عن حلقة while.
while true dofor currentBrightness = 0, 5, brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endfor currentBrightness = 5, 0, -brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endendقم بتشغيل اللعبة لترى الضوء يتحول إلى ساطع ثم يتلاشى باستمرار.
سكربت الضوء النهائي
يمكن الإشارة إلى نسخة نهائية من السكربت أدناه.
-- يخزن الضوء المرفق بهذا المصباح
lightPart = script.Parent
light = lightPart.SpotLight
-- مدى تغير سطوع الضوء في كل مرة
local brightnessChange = 1
-- مدى تكرار تغير سطوع الضوء بالثواني
local timeChange = 0.2
while true do
for count = 0, 5, brightnessChange do
light.Brightness = count
task.wait(timeChange)
end
-- الحلقة الثانية لإيقاف تشغيل الضوء
for count = 5, 0, -brightnessChange do
light.Brightness = count
task.wait(timeChange)
end
endملخص
لإنشاء تأثيرات معقدة في مشروع، يمكن أن تستخدم السكربتات حلقات متعددة، وحتى تركيبات من أنواع مختلفة من الحلقات. لبرمجة ضوء متوهج، يتم تضمين حلقتين داخل حلقة while. بينما يضيف المبرمجون المزيد من الحلقات، تأكد من التحقق من المسافات البادئة حتى يكون الكود سهل القراءة.