เปิดไฟเรืองแสงด้วยลูป

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่

เพื่อฝึกซ้อมสำหรับลูปคุณจะสร้างโคมไฟที่เรืองแสงมากขึ้นเรื่อยๆ และจะจางลงเมื่อเวลาผ่านไปสคริปต์นี้สามารถนำไปใช้กับแสงอื่นๆ ในโครงการได้ ไม่ว่าจะเป็นไฟถนนหรือคริสตัลเรืองแสง

ตั้งค่าส่วนและสคริปต์

โคมไฟจะเป็นส่วนหนึ่งที่มีแสงและสคริปต์ที่ติดอยู่

  1. เพื่อให้เห็นแสงได้ง่ายขึ้น เปลี่ยนโลกเกมเป็น เวลากลางคืน ใน Explorer > แสง > เปลี่ยน เวลานาฬิกา เป็น 0

    image
  2. สร้างส่วนหรือโมเดลใหม่ที่ชื่อว่า Lamp

  3. เลือกโคมไฟและเพิ่ม แสง เช่นจุดแสงหรือสปอตไลท์คุณจะทำงานร่วมกับคุณสมบัติความสว่างของแสงเพื่อสร้างโคมไฟเรืองแสง

  4. ในโคมไฟ เพิ่มสคริปต์ใหม่ชื่อ GlowScript ในสคริปต์นั้น สร้างตัวแปรเพื่อเก็บส่วนโคมไฟและจุดแสง


    local lightPart = script.Parent
    local light = lightPart.SpotLight
  5. ต่อไป สร้างตัวแปรเพื่อจัดเก็บจํานวนความสว่างของแสงที่จะเปลี่ยนแปลงในแต่ละครั้งที่ลูปทํางานจากนั้นเพิ่มตัวแปรอื่นสำหรับจำนวนวินาทีที่ลูปจะรอก่อนที่จะรันอีกครั้ง


    -- ความสว่างของแสงจะเปลี่ยนแปลงมากแค่ไหนในแต่ละครั้ง
    local brightnessChange = 1
    -- บ่อยแค่ไหนในวินาทีแสงจะเปลี่ยนความสว่าง
    local timeChange = 1

ทำให้โคมไฟเรืองแสง

โคมไฟจะใช้สอง สำหรับลูป , หนึ่งที่นับขึ้นเพื่อให้โคมไฟสว่างขึ้น, และหนึ่งที่นับลงเพื่อทำให้มันจางแต่ละรอบจะมีตัวแปรควบคุมชื่อว่า currentBrightnessอย่างนั้นเมื่อแปรควบคุมของลูป for ขึ้นและลง ความสว่างของแสงก็จะสว่างขึ้นเช่นกัน

ลูปแรก (เพิ่มแสง)

จำไว้ว่าลูป for เริ่มต้นด้วยคีย์เวิร์ด for ตามด้วยแปรควบคุมสคริปต์นี้จะตั้งค่าค่าความสว่างของแสงเป็นค่าในตัวแปรควบคุม

  1. เขียนโค้ดในลูปโดยใช้ค่าต่อไปนี้ อย่าลืมแยกแปรควบคุมและค่าสิ้นสุดด้วยจุลภาค

    • ตัวแปรควบคุม : currentBrightness
    • ค่าเริ่มต้น : 0
    • ค่าสิ้นสุด : 5
    • มูลค่าการเพิ่ม : brightnessChange

    local timeChange = 1
    for currentBrightness = 0, 5, brightnessChange do
    end
  2. ในขอบเขตของลูป for ตั้งค่าความสว่างของแสงเป็นค่าในตัวแปรควบคุมโดยพิมพ์ light.Brightness = currentBrightnessตอนนี้เมื่อลูปทำงานแสงจะสว่างขึ้น


    for currentBrightness = 0, 5, brightnessChange do
    light.Brightness = currentBrightness
    end
  3. ดังนั้นการเปลี่ยนแปลงจะไม่เกิดขึ้นในครั้งเดียว เพิ่มฟังก์ชันการรอด้วยค่าใน timeChange


    for currentBrightness = 0, 5, brightnessChange do
    light.Brightness = currentBrightness
    task.wait(timeChange)
    end
  4. เรียกเกมเพื่อดูแสงเพิ่มขึ้นในความสว่างทุกวินาที

หากคุณไม่สามารถเห็นการเปลี่ยนแปลงความสว่างเมื่อเวลาผ่านไปในลูปแรกได้:

  • ตรวจสอบให้แน่ใจว่า light.Brightness = currentBrightness อยู่ระหว่างการทำและสิ้นสุดของลูป for ของคุณ
  • ตรวจสอบว่า timeChange อย่างน้อย 1 หรือสูงกว่า ตัวเลขที่เล็กกว่าจะทำให้การเปลี่ยนแปลงความสว่างเร็วขึ้น แต่ยากที่จะมองเห็นได้ในระยะเวลานาน
  • ตรวจสอบให้แน่ใจว่าบรรทัดแรกของลูป for มีจุลภาพทั้งหมดสองจุลภาพที่แยกตัวแปรควบคุม ค่าสิ้นสุด และค่าเพิ่มขึ้น

ลูปที่สอง (ลดแสง)

เพื่อลดแสงให้ใช้เวลาสองวินาทีสำหรับลูป ค่าของลูปนี้จะถูกย้อนกลับดังนั้นแสงจะเริ่มสว่างและแต่ละวินาทีจะมืดลง

  1. เขียนโค้ดสำหรับลูปที่ลดความสว่างในเวลา โซลูชันอยู่ในกล่องโค้ดด้านล่าง ใช้ค่าต่อไปนี้:

    • ตัวแปรควบคุม - currentBrightness ตั้งค่าเป็น 5 จุดสิ้นสุดของลูปสุดท้าย
    • สิ้นสุด - 0 ปิดไฟ
    • การเพิ่ม - ลบ brightnessChange

    -- โคมไฟวงจงหวะที่สอง
    for currentBrightness = 5, 0, -brightnessChange do
    light.Brightness = currentBrightness
    task.wait(timeChange)
    end
  2. เรียกใช้เกมของคุณ; คุณควรเห็นแสงสว่างสดใสแล้วจาง

ทำให้แสงซ้ำ

ตอนนี้แสงจะเปิดและปิดเพียงครั้งเดียวเพื่อให้โคมไฟเรืองแสงอย่างต่อเนื่องและปิดบ่อยๆ จะมีการวางลูป for ภายในลูปซ้ำ

  1. ภายใต้ลูป for สร้างลูป while ใหม่


    while true do
    end
  2. วางทั้งสองสำหรับลูปภายในลูป while ให้ความสำคัญกับลูปเพื่อให้พวกเขาแยกออกจากลูป while ได้ง่ายขึ้น


    while true do
    for currentBrightness = 0, 5, brightnessChange do
    light.Brightness = currentBrightness
    task.wait(timeChange)
    end
    for currentBrightness = 5, 0, -brightnessChange do
    light.Brightness = currentBrightness
    task.wait(timeChange)
    end
    end
  3. เรียกเกมเพื่อดูแสงสว่างเปลี่ยนเป็นสดใสและอ่อนต่อเนื่อง

สคริปต์แสงเสร็จสิ้น

สามารถอ้างอิงเวอร์ชันสิ้นสุดของสคริปต์ได้ด้านล่าง


-- เก็บแสงที่ติดกับโคมไฟนี้
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เมื่อโปรแกรมเมอร์เพิ่มลูปเพิ่มเติมแน่ใจว่าตรวจสอบการอ้างอิงเพื่อให้โค้ดสามารถอ่านได้ง่าย