Bật đèn phát sáng với vòng lặp

*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.

Để thực hành cho vòng lặp, bạn sẽ tạo một ngọn đèn phát sáng dần dần và sau đó tắt dần theo thời gian.Sau đó, kịch bản này có thể được áp dụng cho bất kỳ ánh sáng nào khác trong một dự án, cho dù đó là đèn phố hay pha lê phát sáng.

Thiết lập phần và kịch bản

Bóng đèn sẽ là một phần có đèn và kịch bản được gắn kết.

  1. Để dễ dàng hơn để nhìn thấy ánh sáng, thay đổi thế giới trò chơi thành thời gian ban đêm . Trong Explorer > Ánh sáng > thay đổi Thời gian trong ngày thành 0.

    image
  2. Tạo một phần hoặc mô hình mới có tên Lamp.

  3. Chọn Đèn, và thêm một ánh sáng , chẳng hạn như một Đèn điểm hoặc Đèn điểm.Bạn sẽ làm việc với thuộc tính độ sáng của ánh sáng để tạo một bóng đèn phát sáng.

  4. Trong Lamp, thêm một kịch bản mới có tên GlowScript. Trong kịch bản đó, tạo các biến để lưu phần đèn và ánh sáng điểm.


    local lightPart = script.Parent
    local light = lightPart.SpotLight
  5. Tiếp theo, tạo một biến để giữ lượng sáng sẽ thay đổi bao nhiêu mỗi khi vòng lặp chạy.Sau đó, thêm một biến khác cho số giây mà các vòng lặp sẽ chờ trước khi chạy lại.


    -- Lượng ánh sáng sẽ thay đổi bao nhiêu mỗi lần
    local brightnessChange = 1
    -- Thường xuyên trong vài giây ánh sáng sẽ thay đổi độ sáng
    local timeChange = 1

Làm cho đèn phát sáng

Bóng đèn sẽ sử dụng hai cho vòng lặp , một trong số đó đếm lên để làm cho bóng đèn sáng hơn, và một trong số đó đếm xuống để làm nó tối hơn.Mỗi lần lặp sẽ có một biến điều khiển có tên là currentBrightness.Theo cách đó, khi biến điều khiển của vòng lặp for lên và xuống, độ sáng của ánh sáng cũng sẽ tăng lên và xuống.

Vòng lặp đầu tiên (tăng ánh sáng)

Hãy nhớ, một vòng lặp for bắt đầu với từ khóa for theo sau bởi một biến điều khiển.Tập lệnh này sẽ đặt giá trị độ sáng của ánh sáng lên giá trị trong biến điều khiển.

  1. Mã hóa vòng lặp for bằng các giá trị sau. Hãy nhớ phân biệt biến điều khiển và giá trị cuối cùng bằng dấu phẩy.

    • Biến điều khiển : currentBrightness
    • Giá trị bắt đầu : 0
    • Giá trị cuối : 5
    • Giá tăng : brightnessChange

    local timeChange = 1
    for currentBrightness = 0, 5, brightnessChange do
    end
  2. Trong phạm vi của vòng lặp for, hãy đặt thuộc tính độ sáng của ánh sáng lên giá trị trong biến điều khiển bằng cách gõ light.Brightness = currentBrightness .Bây giờ, khi vòng lặp chạy, ánh sáng sẽ trở nên sáng hơn.


    for currentBrightness = 0, 5, brightnessChange do
    light.Brightness = currentBrightness
    end
  3. Vì vậy, sự thay đổi không xảy ra tất cả cùng một lúc, thêm chức năng chờ sử dụng giá trị trong timeChange .


    for currentBrightness = 0, 5, brightnessChange do
    light.Brightness = currentBrightness
    task.wait(timeChange)
    end
  4. Chạy trò chơi để xem ánh sáng tăng lên về độ sáng mỗi giây.

Nếu bạn không thể thấy sự thay đổi độ sáng theo thời gian trong vòng lặp đầu tiên:

  • Hãy chắc chắn rằng light.Brightness = currentBrightness ở giữa do và kết thúc của vòng lặp for của bạn.
  • Kiểm tra xem timeChange ít nhất là 1 hoặc cao hơn. Những con số nhỏ hơn sẽ làm cho độ sáng thay đổi nhanh hơn, nhưng sẽ khó nhìn theo thời gian.
  • Hãy chắc chắn rằng dòng đầu tiên của vòng lặp for có hai dấu phân cách tổng cộng tách biệt biến điều khiển, giá trị cuối cùng và giá trị tăng.

Vòng lặp thứ hai (ánh sáng giảm)

Để làm mờ ánh sáng, sử dụng một giây cho vòng lặp. Các giá trị của vòng lặp này sẽ được đảo ngược để ánh sáng bắt đầu sáng và mỗi giây, trở nên mờ dần.

  1. Mã một lần lặp thứ hai giảm độ sáng theo thời gian. Giải pháp nằm trong hộp mã bên dưới. Sử dụng các giá trị sau:

    • Biến điều khiển - currentBrightness đặt thành 5, cuối của vòng lặp cuối cùng.
    • Kết thúc - 0, tắt đèn.
    • Tăng lên - trừ brightnessChange .

    -- Đèn dim vòng thứ hai
    for currentBrightness = 5, 0, -brightnessChange do
    light.Brightness = currentBrightness
    task.wait(timeChange)
    end
  2. Chạy trò chơi của bạn; bạn nên thấy ánh sáng sáng lên và sau đó tối đi.

Lặp lại ánh sáng

Hiện tại, ánh sáng chỉ bật và tắt một lần.Để làm cho đèn liên tục phát sáng và tắt, vòng lặp sẽ được đặt bên trong một vòng lặp lặp lại.

  1. Dưới các vòng lặp, tạo một vòng lặp while mới.


    while true do
    end
  2. Đặt cả hai vòng lặp vào trong vòng lặp while. Nhấn mạnh vào vòng lặp để làm cho chúng dễ dàng phân biệt khỏi vòng lặp 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. Chạy trò chơi để xem ánh sáng bật sáng và tắt liên tục.

Kịch bản ánh sáng đã hoàn thành

Một phiên bản hoàn thành của kịch bản có thể tham chiếu dưới đây.


-- Lưu ánh sáng được gắn vào đèn này
lightPart = script.Parent
light = lightPart.SpotLight
-- Lượng ánh sáng sẽ thay đổi bao nhiêu mỗi lần
local brightnessChange = 1
-- Thường xuyên trong vài giây ánh sáng sẽ thay đổi độ sáng
local timeChange = 0.2
while true do
for count = 0, 5, brightnessChange do
light.Brightness = count
task.wait(timeChange)
end
-- Vòng lặp thứ hai để tắt đèn
for count = 5, 0, -brightnessChange do
light.Brightness = count
task.wait(timeChange)
end
end

Tổng quát

Để tạo các hiệu ứng phức tạp trong một dự án, các kịch bản có thể sử dụng nhiều vòng lặp, thậm chí là các kết hợp của các loại vòng lặp khác nhau.Để mã hóa một ánh sáng phát sáng, hai vòng lặp được lồng vào trong một vòng lặp while.Khi các lập trình viên thêm nhiều vòng lặp, hãy chắc chắn kiểm tra khoảng trống để mã có thể dễ đã xem.