Luci fluorescenti con cicli for

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

Per esercitarti con i cicli for, creerai una lampada che si illumina gradualmente e poi si attenua nel tempo. Questo script può poi essere applicato a qualsiasi altra luce in un progetto, che si tratti di un lampione o di un cristallo fluorescenti.

Imposta la parte e lo script

La lampada sarà una parte con una luce e uno script allegati.

  1. Per rendere più facile vedere la luce, cambia il mondo 3D in notte. In ExplorerLighting, cambia ClockTime in 0.

    immagine
  2. Crea una nuova parte o modello chiamato Lamp.

  3. Seleziona Lamp e aggiungi una luce, come PointLight o SpotLight. Lavorerai con la proprietà di luminosità della luce per creare una lampada luminosa.

  4. In Lamp, aggiungi un nuovo script chiamato GlowScript. In quello script, crea variabili per memorizzare la parte della lampada e la luce puntiforme.


    local lightPart = script.Parent
    local light = lightPart.SpotLight
  5. Successivamente, crea una variabile per contenere quanto la luminosità della luce cambierà ogni volta che il ciclo viene eseguito. Poi, aggiungi un’altra variabile per quanto secondi i cicli aspetteranno prima di eseguire di nuovo.


    -- Quanto cambierà la luminosità della luce ogni volta
    local brightnessChange = 1
    -- Quanto spesso in secondi la luce cambierà luminosità
    local timeChange = 1

Fai brillare la lampada

La lampada utilizzerà due cicli for, uno che conta per rendere la lampada più luminosa e uno che conta per attenuarla. Ogni ciclo for avrà una variabile di controllo chiamata currentBrightness. In questo modo, man mano che la variabile di controllo del ciclo for aumenta e diminuisce, così farà anche la luminosità della luce.

Primo ciclo (aumento della luce)

Ricorda, un ciclo for inizia con la parola chiave for seguita da una variabile di controllo. Questo script imposterà il valore di luminosità della luce al valore della variabile di controllo.

  1. Codifica il ciclo for utilizzando i seguenti valori. Ricorda di separare la variabile di controllo e i valori finali con una virgola.

    • Variabile di controllo: currentBrightness
    • Valore iniziale: 0
    • Valore finale: 5
    • Valore di incremento: brightnessChange

    local timeChange = 1
    for currentBrightness = 0, 5, brightnessChange do
    end
  2. Nel contesto del ciclo for, imposta la proprietà di luminosità della luce al valore della variabile di controllo digitando light.Brightness = currentBrightness. Ora, quando il ciclo verrà eseguito, la luce diventerà più luminosa.


    for currentBrightness = 0, 5, brightnessChange do
    light.Brightness = currentBrightness
    end
  3. Affinché il cambiamento non avvenga tutto in una volta, aggiungi una funzione di attesa utilizzando il valore di timeChange.


    for currentBrightness = 0, 5, brightnessChange do
    light.Brightness = currentBrightness
    task.wait(timeChange)
    end
  4. Esegui l'esperienza per vedere la luce aumentare di luminosità ogni secondo.

Se non riesci a vedere il cambiamento di luminosità nel primo ciclo:

  • Assicurati che light.Brightness = currentBrightness sia compreso tra do e end del tuo ciclo for.
  • Controlla che timeChange sia almeno 1 o più. Numeri più piccoli faranno cambiare la luminosità più rapidamente, ma sarà più difficile da vedere nel tempo.
  • Assicurati che la prima riga del tuo ciclo for abbia due virgole totali che separano la variabile di controllo, il valore finale e il valore di incremento.

Secondo ciclo (diminuzione della luce)

Per attenuare la luce, utilizza un secondo ciclo for. I valori di questo ciclo saranno invertiti in modo che la luce inizi a brillare e ogni secondo diventi più debole.

  1. Codifica un secondo ciclo for che diminuisce la luminosità nel tempo. La soluzione si trova nel riquadro di codice sottostante. Usa i seguenti valori:

    • Variabile di controllo - currentBrightness impostata a 5, la fine dell'ultimo ciclo.
    • Fine - 0, spegnendo la luce.
    • Incremento - sottrai brightnessChange.

    -- Secondo ciclo che attenua la lampada
    for currentBrightness = 5, 0, -brightnessChange do
    light.Brightness = currentBrightness
    task.wait(timeChange)
    end
  2. Esegui la tua esperienza; dovresti vedere la luce brillare e poi attenuarsi.

Fai ripetere la luce

Al momento, la luce si accende e si spegne solo una volta. Per fare in modo che la lampada continui a brillare e spegnersi, i cicli for saranno inseriti all'interno di un ciclo while ripetuto.

  1. Sotto i cicli for, crea un nuovo ciclo while.


    while true do
    end
  2. Posiziona entrambi i cicli for all'interno di un ciclo while. Indenta i cicli for per facilitarne la distinzione dal ciclo 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. Esegui l'esperienza per vedere la luce diventare luminosa e attenuarsi continuamente.

Script della luce finito

Una versione finale dello script può essere consultata qui sotto.


-- Memorizza la luce attaccata a questa lampada
lightPart = script.Parent
light = lightPart.SpotLight
-- Quanto cambierà la luminosità della luce ogni volta
local brightnessChange = 1
-- Quanto spesso in secondi la luce cambierà luminosità
local timeChange = 0.2
while true do
for count = 0, 5, brightnessChange do
light.Brightness = count
task.wait(timeChange)
end
-- Secondo ciclo per spegnere la luce
for count = 5, 0, -brightnessChange do
light.Brightness = count
task.wait(timeChange)
end
end

Per creare effetti complessi in un progetto, gli script possono utilizzare più cicli ed anche combinazioni di diversi tipi di cicli. Per codificare una luce fluorescente, due cicli sono nidificati all'interno di un ciclo while. Man mano che i programmatori aggiungono più cicli, assicurati di controllare l'indentazione in modo che il codice possa essere facile da leggere.

© 2026 Roblox Corporation. Roblox, il logo Roblox e Powering Imagination sono tra i nostri marchi registrati e non registrati negli Stati Uniti. e altri paesi.