發光的燈,有 Loop

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

要練習循環,你會創造一個燈,燈會隨著時間的推移越來越亮。這個腳本可以應用於任何項目中的其他燈,例如街燈或發光的水晶。

設置零件和指令碼

燈將是個包含燈光和指令碼的零件。

  1. 為了讓更容易看到光,將遊戲世界變更為 夜晚 。在 Explorer > Lighting > 變更 ClockTime 為 0。

    image
  2. 建立名為 Lamp 的新零件或模型。

  3. 選擇 ,並添加一個 光,例如 點光源 或 2>聚光燈2>。你會使用燈的光強屬性來創建發光燈。

  4. 在燈中,添加名為 GlowScript 的新指令碼。在指令碼中,創建變數來存儲燈零件和點光。


    local lightPart = script.Parent
    local light = lightPart.SpotLight
  5. 接下來,創建一個變數來持有光的亮度每次循環執行時會變化的程度。然後,再添加一個變數來計算程度,在循環執行後再重新執行。


    -- 燈光的亮度每次會改變多少
    local brightnessChange = 1
    -- 燈在秒鐘內會改變亮度幾何
    local timeChange = 1

製造泛光燈

燈會使用兩個 對循環使用 ,其中一個用來讓燈更亮,並且一個用來讓燈更暗。每個對循環的控制變量都有一個名為當前Brightness的控制變量。因此,當燈的控制變量上升和下降時,燈的亮度就會變化。

第一個輪圈 (光增加)

記住,for 循環會以關鍵字 for 與控制變量後開始。此腳本將設定燈光的亮度值為控制變量。

  1. 使用以下值來設定循環。記得使用分號分開控制變數和結束值。

    • 控制變數 : currentBrightness
    • 開始值 : 0
    • 結束值 : 5
    • 增量值 : brightnessChange

    local timeChange = 1
    for currentBrightness = 0, 5, brightnessChange do
    end
  2. 在 for 範圍內,將光的亮度屬性設置為light.Brightness = currentBrightness。現在,當 for 範圍內運行時,光會變得更亮。


    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 在你的循環中的位置。
  • 檢查 timeChange 至少為 1 或更高。較小的數字會使變化更快,但隨著時間的推移會變得更難以觀察。
  • 請確保第一行 for 循環的第一個行有兩個總分號,分別是控制變數、結束值和增量值。

第二個循環(光減少)

要將燈光減暗,請使用一秒鐘。這個循環的值將被反轉,因此燈光將亮起,每一秒鐘,它會變得更暗。

  1. 在時間變化中減少亮度的代碼。代碼在下面的代碼框中。使用以下值:

    • 控制變數 - currentBrightness 設為 5,結束上一個循環。
    • 結束 - 0,關閉燈。
    • 增量 -子減去brightnessChange

    -- 第二個減弱燈
    for currentBrightness = 5, 0, -brightnessChange do
    light.Brightness = currentBrightness
    task.wait(timeChange)
    end
  2. 執行您的遊戲;您應該看到燈光明亮,然後褪色。

重複燈光

現在,燈光只會打開和關閉一次。要讓燈光持續發光,則必須在重複的時間內放置循環。

  1. 在 for 週期內,創建新的 while 週期。


    while true do
    end
  2. 將兩個放置在 while 內的循環中。將 for 放置在 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 循環內重疊。當腡者添加更多循環時,請務必檢查寫入,以便讓代碼已讀得容易。