使用 for 迴圈製作發光燈

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡

為了練習 for 迴圈,您將創建一個燈,該燈會隨著時間逐漸變亮,然後逐漸變暗。然後可以將此腳本應用於項目中的任何其他燈光,無論是路燈還是發光水晶。

設置部件和腳本

燈將是帶有附加燈光和腳本的部件。

  1. 為了更容易看到光線,將 3D 世界改為 夜間。在 ExplorerLighting 中,將 ClockTime 更改為 0

    圖片
  2. 創建一個名為 Lamp 的新部件或模型。

  3. 選擇 Lamp,並添加一個 燈光,例如 PointLight 或 SpotLight。您將使用燈光的亮度屬性來創建一個發光的燈。

  4. 在 Lamp 中,添加一個名為 GlowScript 的新腳本。在該腳本中,創建變數以存儲燈部件和點光源。


    local lightPart = script.Parent
    local light = lightPart.SpotLight
  5. 接下來,創建一個變數來保存每次迴圈運行時燈的亮度變化量。然後,再添加另一個變數,表示迴圈運行之前等待的秒數。


    -- 每次燈的亮度將改變多少
    local brightnessChange = 1
    -- 燈每次改變亮度的秒數
    local timeChange = 1

使燈光發光

燈將使用兩個 for 迴圈,一個用來計數使燈變亮,另一個用來計數使其變暗。每個 for 迴圈將有一個控制變數名為 currentBrightness。這樣,當 for 迴圈的控制變數上升和下降時,燈光的亮度也會隨之變化。

第一個迴圈(光增加)

請記住,for 迴圈以關鍵字 for 開始,後面跟著控制變數。此腳本將設置燈光的亮度值為控制變數的值。

  1. 使用以下值編寫 for 迴圈的代碼。記住用逗號分隔控制變數和結束值。

    • 控制變數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 迴圈的 do 和 end 之間。
  • 檢查 timeChange 是否至少為 1 或更高。較小的數字會使亮度變化更快,但不易隨時間察覺。
  • 確保您的 for 迴圈的第一行有兩個逗號分隔控制變數、結束值和增量值。

第二個迴圈(光減少)

要使燈光變暗,請使用第二個 for 迴圈。此迴圈的值將反轉,因此燈光始終是亮的,然後隨著時間逐漸變暗。

  1. 編寫一個第二個 for 迴圈,以隨著時間減少亮度。解決方案在下面的代碼框中。使用以下值:

    • 控制變數 - currentBrightness 設置為 5,即上個迴圈的結尾。
    • 結束 - 0,關閉燈光。
    • 增量 - 減去 brightnessChange

    -- 第二個迴圈使燈變暗
    for currentBrightness = 5, 0, -brightnessChange do
    light.Brightness = currentBrightness
    task.wait(timeChange)
    end
  2. 運行您的體驗;您應該看到燈光變亮然後變暗。

使燈光重複

現在,燈光只會開一次,關一次。為了使燈持續亮起和熄滅,for 迴圈將放置在一個重複的 while 迴圈內。

  1. 在 for 迴圈下方創建一個新的 while 迴圈。


    while true do
    end
  2. 將兩個 for 迴圈放置在 while 迴圈內。縮排 for 迴圈,以便更容易區分它們和 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 迴圈內。隨著編碼者添加更多的迴圈,請務必檢查縮排,以便使代碼易於閱讀。

©2026 Roblox Corporation、Roblox、Roblox 標誌及 Powering Imagination 是我們在美國及其他國家地區的部分註冊與未註冊商標。