Luci lampeggianti con for loop

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

Per praticare per i loop, creerai una lampada che si accende lentamente e poi si spegne nel tempo. Questo script può quindi essere applicato a qualsiasi altra luce in un progetto, sia essa una luce stradale o un cristallo lampeggiante.

Configurazione della parte e dello 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 . In Explorer > Lighting > cambia ClockTime in 0.

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

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

  4. In Lamp, aggiungi uno script nuovo chiamato GlowScript. In quel script, crea variabili per memorizzare la parte della lampada e il punto luce.


    local lightPart = script.Parent
    local light = lightPart.SpotLight
  5. Successivamente, crea una variabile per tenere traccia della quantità di luce che cambia ogni volta che il ciclo viene eseguito. Quindi, aggiungi un'altra variabile per sapere quante secondi i cicli saranno in esecuzione prima di essere eseguiti di nuovo.


    -- Quanto cambia la luce ogni volta
    local brightnessChange = 1
    -- Quante volte in secondi la luce cambierà la sua luce
    local timeChange = 1

Rendere la lampada bagliore

La lampada userà due per i loop , uno che conta fino a rendere la lampada più brillante, e uno che conta fino a farlo scuro. Ogni per loop avrà una variabile di controllo chiamata currentBrightness. In questo modo, man mano che la variabile di controllo dei loop sale e scende, così sarà la luce.

Primo Loop (Aumento della luce)

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

  1. Codice il per loop usando i seguenti valori. Ricorda di separare la variabile di controllo e i valori di fine con un punto virgola.

    • Variabile di controllo : currentBrightness
    • Valore di avvio : 0
    • Valore di finezza : 5
    • Valore dell'incremento : brightnessChange

    local timeChange = 1
    for currentBrightness = 0, 5, brightnessChange do
    end
  2. Nell'ambito del for loop, imposta la proprietà di luce della luce al valore nella variabile di controllo digitando light.Brightness = currentBrightness . Ora, quando il for loop viene eseguito, la luce diventerà più brillante.


    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 usando 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 ogni secondo.

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

  • Assicurati che light.Brightness = currentBrightness sia tra il do e il fin della tua forza.
  • Assicurati che timeChange sia almeno 1 o superiore. I numeri più piccoli renderanno il cambiamento di luce più veloce, ma saranno più difficili da vedere nel tempo.
  • Assicurati che la prima riga del tuo for loop abbia due punti virgola totali che separano la variabile di controllo, il valore di fine e l'importo di incremento.

Secondo Loop (Light Decrease)

Per ridurre la luce, usa un secondo per il loop. I valori di questo loop saranno invertiti in modo che la luce inizi a brillare e ogni secondo, diventa più spenta.

  1. Codice un secondo per il loop che riduce la luce nel tempo. La soluzione è nella casella di codice sottostante. Usa i seguenti valori:

    • Controllore variabile - currentBrightness impostato su 5, la fine dell'ultimo ciclo.
    • Fine - 0, spegnere la luce.
    • Incremento - sottrai brightnessChange .

    -- Dimensione lampada a doppio ciclo
    for currentBrightness = 5, 0, -brightnessChange do
    light.Brightness = currentBrightness
    task.wait(timeChange)
    end
  2. Esegui il tuo Gioco; dovresti vedere la luce accendere e poi spegnersi.

Ripetere la luce

In questo momento, la luce si accende e si spegne solo una volta. Per rendere la lampada sempre luminosa e Off, i for loop vengono posizionati all'interno di un loop ripetitivo mentre la lampada è offusa.

  1. Sotto i for loop, crea un nuovo while loop.


    while true do
    end
  2. Posiziona entrambi per i loop all'interno di un loop while. Indent i for loop per renderli più facili da dire a parte lo loop 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 scura continuamente.

Script della luce finito

Una versione finita dello script può essere riferita qui sotto.


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

Panoramica

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 lampeggiante, due loop sono annidati in un while loop. Poiché i codici aggiungono più loop, assicurati di controllare l'indentazione in modo che il codice possa essere facile da leggere.