Luci fluorescenti con i 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 affievolisce nel tempo. Questo script può poi essere applicato a qualsiasi altra luce in un progetto, sia essa un lampione o un cristallo luminoso.

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 una 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 cambierà la luminosità della luce ogni volta che il ciclo viene eseguito. Poi, aggiungi un'altra variabile per quanti secondi i cicli attenderanno 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 affievolirla. Ogni ciclo for avrà una variabile di controllo chiamata currentBrightness. In questo modo, mentre la variabile di controllo del ciclo for sale e scende, 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 nella 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 nella variabile di controllo digitando light.Brightness = currentBrightness. Ora, quando il ciclo viene 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 in timeChange.

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

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

  • Assicurati che light.Brightness = currentBrightness sia tra il do e l'end del tuo ciclo for.
  • Controlla che timeChange sia almeno 1 o superiore. Numeri più piccoli faranno cambiare la luminosità più velocemente, 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 affievolire la luce, utilizza un secondo ciclo for. I valori di questo ciclo saranno invertiti in modo che la luce inizi luminosa e ogni secondo diventi più debole.

  1. Codifica un secondo ciclo for che diminuisce la luminosità nel tempo. La soluzione è nel riquadro di codice qui sotto. 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 per affievolire la lampada
    for currentBrightness = 5, 0, -brightnessChange do
    light.Brightness = currentBrightness
    task.wait(timeChange)
    end
  2. Esegui il tuo gioco; dovresti vedere la luce illuminarsi e poi affievolirsi.

Fai ripetere la luce

In questo momento, la luce si accende e si spegne solo una volta. Per far sì che la lampada brilli continuamente accendendosi e spegnendosi, i cicli for saranno posti 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 renderli più facili da distinguere 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 il gioco per vedere la luce diventare brillante e affievolirsi continuamente.

Script della luce finito

Una versione finita 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 e persino combinazioni di diversi tipi di cicli. Per codificare una luce fluorescente, due cicli sono annidati 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.