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.
Per rendere più facile vedere la luce, cambia il mondo di gioco in notte . In Explorer > Lighting > cambia ClockTime in 0.
Crea una nuova parte o modello chiamato Lamp.
Seleziona Lamp, e aggiungi un luce , come un PointLight o SpotLight. Lavorerai con la proprietà di luce della luce per creare una lampada lampeggiante.
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.Parentlocal light = lightPart.SpotLightSuccessivamente, 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 voltalocal brightnessChange = 1-- Quante volte in secondi la luce cambierà la sua lucelocal 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.
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 = 1for currentBrightness = 0, 5, brightnessChange doendNell'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 dolight.Brightness = currentBrightnessendQuindi il cambiamento non avviene tutto in una volta, aggiungi una funzione di attesa usando il valore in timeChange .
for currentBrightness = 0, 5, brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endEsegui 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.
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 ciclofor currentBrightness = 5, 0, -brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endEsegui 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.
Sotto i for loop, crea un nuovo while loop.
while true doendPosiziona 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 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 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 lampadalightPart = script.Parentlight = lightPart.SpotLight-- Quanto cambia la luce ogni voltalocal brightnessChange = 1-- Quante volte in secondi la luce cambierà la sua lucelocal timeChange = 0.2while true dofor count = 0, 5, brightnessChange dolight.Brightness = counttask.wait(timeChange)end-- Secondo loop per spegnere la lucefor count = 5, 0, -brightnessChange dolight.Brightness = counttask.wait(timeChange)endend
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.