Luci luminose con per loop

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

Per praticare per i cicli, creerai una lampada che si illumina gradualmente più intensamente e poi si spegne nel tempo.Questo script può quindi essere applicato a qualsiasi altra luce in un progetto, sia che si tratti di una luce stradale o di un cristallo incandescente.

Configura 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 di gioco in notte . Nell'esploratore > Illuminazione > cambia ClockTime a 0.

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

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

  4. In Lamp, aggiungi un nuovo script chiamato GlowScript. In quello script, crea le 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 mantenere quanto la luminosità della luce cambierà ogni volta che viene eseguito il ciclo.Quindi, aggiungi un'altra variabile per quanti secondi i loop attenderanno prima di essere eseguiti di nuovo.


    -- Quanto la luminosità della luce cambierà ogni volta
    local brightnessChange = 1
    -- Quante volte in secondi la luce cambierà l'intensità
    local timeChange = 1

Fai risplendere la lampada

La lampada utilizzerà due per i cicli , uno che conta fino a rendere la lampada più luminosa e uno che conta giù per renderla più dimessa.Ogni ciclo while avrà una variabile di controllo chiamata currentBrightness.In questo modo, poiché la variabile di controllo del ciclo while sale e scende, lo stesso farà la luminosità della luce.

Primo ciclo (aumento della luce)

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

  1. Codifica il ciclo while utilizzando i seguenti valori. Ricorda di separare la variabile di controllo e i valori di fine ciclo con un punto virgola.

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

    local timeChange = 1
    for currentBrightness = 0, 5, brightnessChange do
    end
  2. Nell'ambito del ciclo while, 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. Quindi il cambiamento non avviene 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 l'aumento della luce nella luminosità ogni secondo.

Se non puoi vedere il cambio di luminosità nel tempo nel primo ciclo:

  • Assicurati che light.Brightness = currentBrightness sia tra l'inizio e la fine del tuo ciclo while.
  • Assicurati che timeChange sia almeno 1 o superiore. I numeri più piccoli renderanno il cambiamento di luminosità più rapido, ma sarà più difficile da vedere nel tempo.
  • Assicurati che la prima linea del tuo ciclo while abbia due virgole totali che separino la variabile di controllo, il valore finale e il valore di incremento.

Secondo ciclo (diminuzione della luce)

Per attenuare la luce, usa un secondo per il ciclo. I valori di questo ciclo verranno invertiti così la luce inizia brillante e ogni secondo diventa più dimessa.

  1. Codifica un secondo per ciclo che diminuisce la luminosità nel tempo. La soluzione è nella casella 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 loop dims 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 spegnersi.

Ripeti la luce

Al momento, la luce si accende e si spegne solo una volta.Per far sì che la lampada lampeggi continuamente su e Off, i cicli for verranno posizionati all'interno di un ciclo while ripetitivo.

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


    while true do
    end
  2. Posiziona entrambi per i cicli all'interno di un ciclo while. Indenta i cicli 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 accendere e spegnere continuamente.

Script di luce script

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


-- Memorizza la luce attaccata a questa lampada
lightPart = script.Parent
light = lightPart.SpotLight
-- Quanto la luminosità della luce cambierà ogni volta
local brightnessChange = 1
-- Quante volte in secondi la luce cambierà l'intensità
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

Sommariamente

Per creare effetti complessi in un progetto, gli script possono utilizzare più loop e persino combinazioni di diversi tipi di loop.Per codificare una luce luminosa, due loop sono annidati all'interno di un ciclo while.Mentre i programmatori aggiungono più loop, assicurati di controllare l'indentazione in modo che il codice possa essere facile da leggere.