เพื่อฝึกซ้อมสำหรับลูปคุณจะสร้างโคมไฟที่เรืองแสงมากขึ้นเรื่อยๆ และจะจางลงเมื่อเวลาผ่านไปสคริปต์นี้สามารถนำไปใช้กับแสงอื่นๆ ในโครงการได้ ไม่ว่าจะเป็นไฟถนนหรือคริสตัลเรืองแสง
ตั้งค่าส่วนและสคริปต์
โคมไฟจะเป็นส่วนหนึ่งที่มีแสงและสคริปต์ที่ติดอยู่
เพื่อให้เห็นแสงได้ง่ายขึ้น เปลี่ยนโลกเกมเป็น เวลากลางคืน ใน Explorer > แสง > เปลี่ยน เวลานาฬิกา เป็น 0
สร้างส่วนหรือโมเดลใหม่ที่ชื่อว่า Lamp
เลือกโคมไฟและเพิ่ม แสง เช่นจุดแสงหรือสปอตไลท์คุณจะทำงานร่วมกับคุณสมบัติความสว่างของแสงเพื่อสร้างโคมไฟเรืองแสง
ในโคมไฟ เพิ่มสคริปต์ใหม่ชื่อ GlowScript ในสคริปต์นั้น สร้างตัวแปรเพื่อเก็บส่วนโคมไฟและจุดแสง
local lightPart = script.Parentlocal light = lightPart.SpotLightต่อไป สร้างตัวแปรเพื่อจัดเก็บจํานวนความสว่างของแสงที่จะเปลี่ยนแปลงในแต่ละครั้งที่ลูปทํางานจากนั้นเพิ่มตัวแปรอื่นสำหรับจำนวนวินาทีที่ลูปจะรอก่อนที่จะรันอีกครั้ง
-- ความสว่างของแสงจะเปลี่ยนแปลงมากแค่ไหนในแต่ละครั้งlocal brightnessChange = 1-- บ่อยแค่ไหนในวินาทีแสงจะเปลี่ยนความสว่างlocal timeChange = 1
ทำให้โคมไฟเรืองแสง
โคมไฟจะใช้สอง สำหรับลูป , หนึ่งที่นับขึ้นเพื่อให้โคมไฟสว่างขึ้น, และหนึ่งที่นับลงเพื่อทำให้มันจางแต่ละรอบจะมีตัวแปรควบคุมชื่อว่า currentBrightnessอย่างนั้นเมื่อแปรควบคุมของลูป 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 อยู่ระหว่างการทำและสิ้นสุดของลูป for ของคุณ
- ตรวจสอบว่า timeChange อย่างน้อย 1 หรือสูงกว่า ตัวเลขที่เล็กกว่าจะทำให้การเปลี่ยนแปลงความสว่างเร็วขึ้น แต่ยากที่จะมองเห็นได้ในระยะเวลานาน
- ตรวจสอบให้แน่ใจว่าบรรทัดแรกของลูป for มีจุลภาพทั้งหมดสองจุลภาพที่แยกตัวแปรควบคุม ค่าสิ้นสุด และค่าเพิ่มขึ้น
ลูปที่สอง (ลดแสง)
เพื่อลดแสงให้ใช้เวลาสองวินาทีสำหรับลูป ค่าของลูปนี้จะถูกย้อนกลับดังนั้นแสงจะเริ่มสว่างและแต่ละวินาทีจะมืดลง
เขียนโค้ดสำหรับลูปที่ลดความสว่างในเวลา โซลูชันอยู่ในกล่องโค้ดด้านล่าง ใช้ค่าต่อไปนี้:
- ตัวแปรควบคุม - currentBrightness ตั้งค่าเป็น 5 จุดสิ้นสุดของลูปสุดท้าย
- สิ้นสุด - 0 ปิดไฟ
- การเพิ่ม - ลบ brightnessChange
-- โคมไฟวงจงหวะที่สองfor currentBrightness = 5, 0, -brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endเรียกใช้เกมของคุณ; คุณควรเห็นแสงสว่างสดใสแล้วจาง
ทำให้แสงซ้ำ
ตอนนี้แสงจะเปิดและปิดเพียงครั้งเดียวเพื่อให้โคมไฟเรืองแสงอย่างต่อเนื่องและปิดบ่อยๆ จะมีการวางลูป for ภายในลูปซ้ำ
ภายใต้ลูป for สร้างลูป while ใหม่
while true doendวางทั้งสองสำหรับลูปภายในลูป while ให้ความสำคัญกับลูปเพื่อให้พวกเขาแยกออกจากลูป 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.Parentlight = lightPart.SpotLight-- ความสว่างของแสงจะเปลี่ยนแปลงมากแค่ไหนในแต่ละครั้งlocal brightnessChange = 1-- บ่อยแค่ไหนในวินาทีแสงจะเปลี่ยนความสว่างlocal timeChange = 0.2while true dofor count = 0, 5, brightnessChange dolight.Brightness = counttask.wait(timeChange)end-- ลูปที่สองเพื่อปิดไฟfor count = 5, 0, -brightnessChange dolight.Brightness = counttask.wait(timeChange)endend
สรุป
เพื่อสร้างเอฟเฟกต์ที่ซับซ้อนในโครงการ สคริปต์สามารถใช้ลูปหลายตัวและแม้แต่การรวมกันของประเภทลูปที่แตกต่างกันเพื่อโค้ดแสงเรืองแสง สองลูปถูกซ้อนอยู่ภายในลูป whileเมื่อโปรแกรมเมอร์เพิ่มลูปเพิ่มเติมแน่ใจว่าตรวจสอบการอ้างอิงเพื่อให้โค้ดสามารถอ่านได้ง่าย