Luces resplandecientes con bucles

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

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.

  1. 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.

    image
  2. Crea una nueva parte o modelo llamado Lámpara.

  3. 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.

  4. 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.Parent
    local light = lightPart.SpotLight
  5. A 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 vez
    local brightnessChange = 1
    -- Con qué frecuencia en segundos cambiará la luz su brillo
    local 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.

  1. 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 = 1
    for currentBrightness = 0, 5, brightnessChange do
    end
  2. En 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 do
    light.Brightness = currentBrightness
    end
  3. Así 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 do
    light.Brightness = currentBrightness
    task.wait(timeChange)
    end
  4. Ejecuta 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.

  1. 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ón
    for currentBrightness = 5, 0, -brightnessChange do
    light.Brightness = currentBrightness
    task.wait(timeChange)
    end
  2. Ejecuta 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.

  1. Bajo los bucles for, crea un nuevo bucle while.


    while true do
    end
  2. Coloca ambos bucles dentro de un bucle while. Indenta los bucles para que sean más fáciles de distinguir del bucle 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. Ejecuta 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ámpara
lightPart = script.Parent
light = lightPart.SpotLight
-- Cuánto cambiará la brillantez de la luz cada vez
local brightnessChange = 1
-- Con qué frecuencia en segundos cambiará la luz su brillo
local timeChange = 0.2
while true do
for count = 0, 5, brightnessChange do
light.Brightness = count
task.wait(timeChange)
end
-- Segundo bucle para apagar la luz
for count = 5, 0, -brightnessChange do
light.Brightness = count
task.wait(timeChange)
end
end

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.