Para practicar con bucles, crearás una lámpara que gradualmente brilla más brillante y luego se oscurece con el tiempo.Este script luego se puede aplicar a cualquier otra luz en un proyecto, ya sea una lámpara de calle o un cristal brillante.
Configurar la parte y el script
La lámpara será una parte con una luz y un scriptadjuntos.
Para facilitar ver la luz, cambia el mundo del juego a hora de la noche . En el Explorador > Iluminación > cambia Hora del reloj a 0.
Crea una nueva parte o modelo llamado Lámpara.
Seleccione Lámpara, y agregue una luz , como un Punto de luz o Spotlight.Trabajarás con la propiedad de brillo de la luz para crear una lámpara resplandeciente.
En Lámpara, agregue un nuevo script llamado GlowScript. En ese script, cree variables para almacenar la parte de la lámpara y la luz de punto.
local lightPart = script.Parentlocal light = lightPart.SpotLightA continuación, crea una variable para mantener cuánto cambiará la brillantez de la luz cada vez que se ejecute el bucle.Luego, agregue otra variable para cuántos segundos esperarán los bucles antes de ejecutarse nuevamente.
-- Cuánto cambiará la brillantez de la luz cada vezlocal brightnessChange = 1-- Con qué frecuencia en segundos cambiará la luz su brillolocal timeChange = 1
Haz que la lámpara brille
La lámpara usará dos para bucles , uno que cuenta hasta hacer la lámpara más brillante y uno que cuenta hacia abajo para oscurecerla.Cada bucle de repetición tendrá una variable de control llamada currentBrightness.De esa manera, a medida que la variable de control del bucle for sube y baja, también lo hará la intensidad de la luz.
Primer bucle (aumento de luz)
Recuerde, un bucle for comienza con la palabra clave for seguida de una variable de control.Este script establecerá el valor de brillo de la luz al valor en la variable de control.
Codifica el bucle for usando los siguientes valores. Recuerda separar la variable de control y los valores finales con una coma.
- Variable de control : currentBrightness
- Valor de inicio : 0
- Valor final : 5
- Valor de incremento : brightnessChange
local timeChange = 1for currentBrightness = 0, 5, brightnessChange doendEn el alcance del bucle for, establece la propiedad de brillo de la luz al valor en la variable de control escribiendo light.Brightness = currentBrightness .Ahora, cuando se ejecute el bucle, la luz se hará más brillante.
for currentBrightness = 0, 5, brightnessChange dolight.Brightness = currentBrightnessendAsí que el cambio no ocurre de una sola vez, agrega una función de espera usando el valor en timeChange .
for currentBrightness = 0, 5, brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endEjecuta el juego para ver la luz aumentar en brillo cada segundo.
Si no puedes ver el cambio de brillo con el tiempo en el primer bucle:
- Asegúrate de que light.Brightness = currentBrightness esté entre el comienzo y el final de tu bucle for.
- Asegúrate de que timeChange sea al menos 1 o superior. Los números más pequeños harán que el cambio de brillo cambie más rápido, pero será más difícil de ver con el tiempo.
- Asegúrate de que la primera línea de tu bucle for tenga dos comas totales que separan la variable de control, el valor final y el valor de incremento.
Segundo bucle (disminución de luz)
Para atenuar la luz, use un segundo de bucle. Los valores de este bucle se invertirán para que la luz empiece brillante y cada segundo, se oscurezca más.
Codifica un segundo para bucle que disminuye el brillo con el tiempo. La solución está en el cuadro de código a continuación. Usa los siguientes valores:
- Variable de control - currentBrightness establecido a 5, el final del último bucle.
- Fin - 0, apagando la luz.
- Incremento - restar brightnessChange .
-- Lámpara de segundo ciclo de atenuaciónfor currentBrightness = 5, 0, -brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endEjecuta tu juego; deberías ver la luz brillar y luego atenuarse.
Hacer que la luz se repita
En este momento, la luz solo se enciende y apaga una vez.Para hacer que la lámpara brille continuamente encendida y desactivado, los bucles for se colocarán dentro de un bucle while repetitivo.
Bajo los bucles for, crea un nuevo bucle while.
while true doendColoca ambos bucles dentro de un bucle while. Indenta los bucles para que sean más fáciles de distinguir del bucle while.
while true dofor currentBrightness = 0, 5, brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endfor currentBrightness = 5, 0, -brightnessChange dolight.Brightness = currentBrightnesstask.wait(timeChange)endendEjecuta el juego para ver la luz encenderse y apagarse continuamente.
scriptde luz terminado
Una versión terminada del script se puede referenciar a continuación.
-- Almacena la luz que se encuentra en esta lámparalightPart = script.Parentlight = lightPart.SpotLight-- Cuánto cambiará la brillantez de la luz cada vezlocal brightnessChange = 1-- Con qué frecuencia en segundos cambiará la luz su brillolocal timeChange = 0.2while true dofor count = 0, 5, brightnessChange dolight.Brightness = counttask.wait(timeChange)end-- Segundo bucle para apagar la luzfor count = 5, 0, -brightnessChange dolight.Brightness = counttask.wait(timeChange)endend
Resumen
Para crear efectos complejos en un proyecto, los scripts pueden usar múltiples bucles y, incluso, combinaciones de diferentes tipos de bucles.Para codificar una luz brillante, dos bucles se anidan dentro de un bucle while.A medida que los codificadores agreguen más bucles, asegúrate de verificar la indentación para que el código sea fácil de leído.