Đèn phát sáng với for lỗ

*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.

Để luyện tập cho các lỗ, bạn sẽ tạo ra một chiếc đèn thở dần mà sau đó tắt dần theo thời gian. This script then can be applied to any other lights in a project, whether it's a street light or glowing crystal.

Tạo các bộ phận và tập lệnh

Đèn sẽ là một phần với đèn đính kèm và script.

  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 > Lighting > thay đổi ClockTime thành 0.

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

  3. Chọn Lamp, và thêm một ánh sáng , như một PointLight hoặc SpotLight. Bạn sẽ làm việc với chỉ số độ sáng của ánh sáng để tạo ra một chiếc đèn phát sáng.

  4. Trong Lamp, hãy thêm một script mới có tên GlowScript. Trong script đó, tạo các biến để lưu bộ phận lamp và điểm ánh sáng.


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


    -- Sự thay đổi về độ sáng của ánh sáng mỗi lần
    local brightnessChange = 1
    -- Có bao nhiêu lần trong giây lát ánh sáng sẽ thay đổi tươi
    local timeChange = 1

Tạo ra ánh sáng cho đèn

Đèn sẽ sử dụng hai cho các lần lặp , một trong số chúng để làm cho đèn sáng hơn và một trong số chúng để làm cho nó tối. Mỗi lần lặp sẽ có một biến điều khiển tên hiện tạiBrightness. Vì vậy, khi biến điều khiển tên hiện tạiBrightness tăng lên v

Lần đầu tiên (Tăng ánh sáng)

Nhớ, for lặp bắt đầu với từ khóa for đi kèm với một biến điều khiển. Script này sẽ thiết lập giá trị độ sáng của ánh sáng đến giá trị trong biến điều khiển.

  1. Lập trình cho vòng lặp bằng các giá trị sau đây. Hãy nhớ phải tách biến điều khiển và giá trị cuối cùng bằng dấu chấm câu.

    • Điều khiển biến đổi : currentBrightness
    • Giá trị khởi đầu : 0
    • Giá trị cuối cùng : 5
    • Giá tăng : brightnessChange

    local timeChange = 1
    for currentBrightness = 0, 5, brightnessChange do
    end
  2. Trong phạm vi của for loop, đặt giá trị độ sáng của ánh sáng lên giá trị trong biến điều khiển bằng cách viết light.Brightness = currentBrightness . Bây giờ, khi for loop 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 này không xảy ra ngay lập tức, hãy thêm chức năng chờ đợi bằng giá trị trong timeChange .


    for currentBrightness = 0, 5, brightnessChange do
    light.Brightness = currentBrightness
    task.wait(timeChange)
    end
  4. Chạy trò chơi để thấy sự tăng trưởng ánh sáng mỗi giây.

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

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

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

Để tắt ánh sáng, hãy sử dụng một giây để lặp lại. Các giá trị của thứ này sẽ được đảo ngược để ánh sáng bắt đầu sáng và mỗi giây, nó sẽ tắt dần.

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

    • Điều khiển biến đổi - currentBrightness đặt 5, kết thúc của lần lượt cuối cùng.
    • Kết thúc - 0, tắt đèn.
    • Increment - subtract brightnessChange .

    -- Lần lượt tắt những chiếc đèn tròn 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ắt.

Tạo lại mẫu ánh sáng

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

  1. Dưới for lặp, tạo một lần lặp mới.


    while true do
    end
  2. Đặt cả hai cho các lần lặp trong một while lặp. Đoạn dấu cho các lần lặp để làm cho chúng dễ dàng hơn để phân biệt khỏi while lặp.


    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 để thấy ánh sáng tăng dần và tắt từ từ.

Tập lệnh ánh sáng xong

Một phiên bản hoàn thành của script có thể được tham khảo ở dưới đây.


-- Lưu ánh sáng được kết dính với đèn này
lightPart = script.Parent
light = lightPart.SpotLight
-- Sự thay đổi về độ sáng của ánh sáng mỗi lần
local brightnessChange = 1
-- Có bao nhiêu lần trong giây lát ánh sáng sẽ thay đổi tươi
local timeChange = 0.2
while true do
for count = 0, 5, brightnessChange do
light.Brightness = count
task.wait(timeChange)
end
-- Vòng thứ hai để tắt ánh sáng
for count = 5, 0, -brightnessChange do
light.Brightness = count
task.wait(timeChange)
end
end

Tổng kết

Để tạo ra các hiệu ứng phức tạp trong một dự án, các script có thể sử dụng nhiều lặp, và thậm chí là các kombinh của các loại lặp khác nhau. Để code một ngọn đèn nhấp nháy, hai lặp được ghim trong một lò xo. Khi các nhà lập trình thêm nhiều lặp, hãy chắc chắn để ki