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.
Per rendere più facile vedere la luce, cambia il mondo di gioco in notte . Nell'esploratore > Illuminazione > cambia ClockTime a 0.
Crea una nuova parte o modello chiamato Lamp.
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.
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.Parentlocal light = lightPart.SpotLightSuccessivamente, 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 voltalocal 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.
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 = 1for currentBrightness = 0, 5, brightnessChange doendNell'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 dolight.Brightness = currentBrightnessendQuindi il cambiamento non avviene tutto in una volta, aggiungi una funzione di attesa utilizzando il valore in timeChange .
for currentBrightness = 0, 5, brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endEsegui 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.
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 lampadafor currentBrightness = 5, 0, -brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endEsegui 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.
Sotto i cicli for, crea un nuovo ciclo while.
while true doendPosiziona entrambi per i cicli all'interno di un ciclo while. Indenta i cicli per renderli più facili da distinguere dal ciclo while.
while true dofor currentBrightness = 0, 5, brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endfor currentBrightness = 5, 0, -brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endendEsegui 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 lampadalightPart = script.Parentlight = lightPart.SpotLight-- Quanto la luminosità della luce cambierà ogni voltalocal brightnessChange = 1-- Quante volte in secondi la luce cambierà l'intensitàlocal timeChange = 0.2while true dofor count = 0, 5, brightnessChange dolight.Brightness = counttask.wait(timeChange)end-- Secondo ciclo per spegnere la lucefor count = 5, 0, -brightnessChange dolight.Brightness = counttask.wait(timeChange)endend
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.