使用 for 迴圈製作發光燈

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

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

設置部件和腳本

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

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

    image
  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 是我們在美國及其他國家地區的部分註冊與未註冊商標。